2010-02-09 93 views
2

我正在爲我的Mac應用程序開發一項新功能,它與地圖有關。作爲一個例子,讓我們使用iPhoto的「Places」。使用WebView從Google地圖獲取Cocoa/Objective-C回調

iPhoto使用Google地圖顯示紅色別針的各種照片的位置。 現在,當我點擊其中一個引腳時,應用程序本身(iPhoto)對該點擊作出反應,而不是WebView /地圖。因此,當我點擊一個圖釘時,視圖會發生變化,並顯示該位置的所有照片。不是在地圖上,而是在iPhoto內的其他屏幕上。所以我假設iPhoto從JavaScript/Map獲得某種回調,以便它可以改變視圖。

這就是我想要實現的。從Google Maps獲取回調到我的Objective-C/Cocoa代碼中,這樣我就可以在應用程序內部更改某些內容,而不是Map本身,具體取決於用戶點擊的標記。

感謝您的幫助,親切的問候,

馬蒂亞斯

回答

2

利用UIWebView的,我不認爲這是一個直接的方式來獲得一個回調。最簡單的方法是讓NSTimer通過調用stringByEvaluatingJavaScriptFromString定期檢查頁面中JavaScript變量的狀態/值。根據這個值,客觀的c代碼可以做些事情。不過,我不建議這樣做。

使用MKMapView可能會更好,它可以讓您更容易,更直接地訪問地圖(儘管MKMapView不具備完整的Google地圖的所有功能)。我沒有測試過這個,但this article顯示了一種檢測MKAnnotation引腳何時被選中的方法。

+0

哦,該死,我應該提到這是Mac。但是,感謝您的鏈接,我會檢查出來。據我所知,MKMapView在Mac上不可用... – 2010-02-09 17:32:49

+0

在Mac上,這似乎可以使用WebKit。請參閱http://developer.apple.com/mac/library/DOCUMENTATION/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/ObjCFromJavaScript.html#//apple_ref/doc/uid/30001215-BBCBFJCD – DyingCactus 2010-02-09 18:03:30

+0

它說,我可以_not_訪問Objective- C性質等。通過JavaScript與此...奇怪。蘋果如何做到這一點? – 2010-02-09 18:07:33

相關問題