我有一個包含webview的iPad應用程序。 webview的頁面上有一個按鈕,點擊時,需要以某種方式告訴本機應用關閉web視圖。有沒有辦法做到這一點?即webview中的javascript將消息傳遞給本機應用程序的方式,反之亦然?webview與本地iOS應用程序通信的任何方式?
謝謝!
我有一個包含webview的iPad應用程序。 webview的頁面上有一個按鈕,點擊時,需要以某種方式告訴本機應用關閉web視圖。有沒有辦法做到這一點?即webview中的javascript將消息傳遞給本機應用程序的方式,反之亦然?webview與本地iOS應用程序通信的任何方式?
謝謝!
當NSString
實例字段發生更改時,可能會有NSNotification
火災。使用後here來幫助理解如何在JavaScript和Objective-C之間進行通信。
然後,它僅僅是一個通知和字符串邏輯的問題:
步驟爲JavaScript到目標C:
不知道你想從Objective-C回傳到Web視圖,但上面的帖子應該有所幫助。
可以使用
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
,從你的WebView檢測的JavaScript附加任何動作!
您可以考慮使用-webView:shouldStartLoadWithRequest:navigationType:
。創建一個虛擬鏈接,您可以識別並關閉Web視圖。至於其他方面,@ Paska的答案聽起來很合適。
我認爲最好的方法是使用僞圖像代替。
JS將插入一個新的圖像,例如:http://example.com/callnative_1354524562763.gif?p1=v1&p2=v2
和你的WebView將覆蓋NSURLCache
檢索1x1大小的透明圖像,並從你的網頁內容分析的參數。
請注意,NSURLCache
只緩存一次,所以請爲每個調用生成新的時間戳。
這種方式適用於我的項目並立即致電本地iOS應用程序。