2010-02-09 4 views
2

Mac 응용 프로그램의 새로운 기능을 작업하고 있으며지도와 관련이 있습니다. 예를 들어, iPhoto의 "장소"를 사용해 봅시다.WebView를 사용하여 Google지도에서 Cocoa/Objective-C 콜백 받기

iPhoto는 Google지도를 사용하여 다양한 사진의 위치를 ​​빨간색 핀으로 표시합니다. 이제 이러한 핀 중 하나를 클릭하면 응용 프로그램 자체 (iPhoto)가 WebView /지도가 아닌 해당 클릭에 반응합니다. 핀을 클릭하면보기가 바뀌고 그 위치의 모든 사진이 표시됩니다. 지도가 아니라 iPhoto의 다른 화면에 있습니다. 따라서 iPhoto는 자바 스크립트/맵에서 콜백을 받으면 뷰를 변경할 수 있다고 가정합니다.

이것은 내가 달성하고자하는 것입니다. Google Maps에서 내 Objective-C/Cocoa 코드로 다시 콜백을 가짐으로써 사용자가 클릭 한 마커에 따라 Map 자체가 아닌 애플리케이션 내에서 무언가를 변경할 수 있습니다.

내가 콜백을 얻을 수있는 직접적인 방법이라고 생각하지 않습니다,있는 UIWebView와 함께, 도움, 종류 안부에 대한

마티아스

답변

2

을 주셔서 감사합니다. 한 가지 일반적인 방법은 NSTimer가 stringByEvaluatingJavaScriptFromString을 호출하여 페이지의 javascript 변수의 상태/값을 주기적으로 확인하도록하는 것입니다. 값을 기반으로, 객관적인 C 코드는 뭔가를 할 수 있습니다. 그러나 나는 이것을 권장하지 않는다.

대신 MKMapView를 사용하면 맵에 더 쉽게 직접 액세스 할 수 있습니다 (MKMapView는 전체 Google지도의 모든 기능을 갖추고 있지는 않지만). 나는 이것을 테스트하지 않았지만 this article은 MKAnnotation 핀이 선택되었을 때를 감지하는 방법을 보여줍니다.

+0

오, 이런, 내가 언급 했어야 할 것은 맥용이다. 하지만 링크에 대한 감사, 나는 그것을 체크 아웃합니다. Mac에서 MKMapView를 사용할 수 없습니다. –

+0

Mac에서는 WebKit을 사용하여 가능합니다. http://developer.apple.com/mac/library/DOCUMENTATION/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/ObjCFromJavaScript.html#//apple_ref/doc/uid/30001215-BBCBFJCD – DyingCactus

+0

Objective- C 속성 외. 이걸로 자바 스크립트를 통해 ... 이상한. 사과는 어떻게합니까? –