我有一个包含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应用程序。