Webview与本机iOS应用程序通信的任何方式
Any way for webview to communicate with native iOS app?
我有一个包含网络视图的iPad应用程序。Web 视图的页面上有一个按钮,单击该按钮时,需要以某种方式告诉本机应用关闭 Web 视图。有什么办法可以做到这一点吗?即Web视图中的JavaScript将消息传递到本机应用程序的方法,反之亦然?
谢谢!
您可以考虑使用 -webView:shouldStartLoadWithRequest:navigationType:
.创建一个虚拟链接,您可以识别并关闭 Web 视图。至于反过来,@Paska的回答听起来很合适。
当NSString
实例字段更改时,可能会触发NSNotification
。使用这里的帖子来帮助理解如何在JavaScript和Objective-C之间进行通信。
然后,这只是通知和字符串逻辑的问题:
JavaScript 到 Objective-C 的步骤:
- 按下网页视图按钮。
- JavaScript 触发返回字符串的方法。
- 本地 NSString 已更新为表示 Web 视图中的按钮已按下(请参阅上面的帖子)。
- NSNotization基于字符串更改触发。
- Objective-C 关闭 Web 视图。
不确定你想从Objective-C传递回Web视图的内容,但上面的帖子应该会有所帮助。
以下方法附加任何操作
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
从您的网络视图中检测JavaScript!
这是文档: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html
我认为最好的方法是使用伪图像。
JS将插入一个新图像,例如:http://example.com/callnative_1354524562763.gif?p1=v1&p2=v2
您的 Web 视图将覆盖NSURLCache
以检索 1x1 透明图像并从您的 Web 内容中解析参数。
请注意,NSURLCache
只缓存一次,因此请为每次调用生成新的时间戳。
这种方式适用于我的项目,并立即调用本机iOS应用程序。
- 如何按id查找两个类中任一类的子元素
- HackReactor,编码窗口现在可以访问一个名为“”的对象;招生;使用名为“;showApp”;.调用此方法时不带任
- 是否有任何用Javascript编写的开源JSDoc解析器
- 禁用负责任设计中的元素
- 在 JavaScript 中使用正则表达式在单词的任一侧添加空格
- 祖尔布基金会 使用 12 列布局的任一侧的空间
- 任何在Phonegap中跟踪主页按钮按下事件的可能性
- 任何在javascript中捕获上下文菜单“粘贴”的方法
- 如何使用任一类jquery搜索父级
- javascript预加载任何在chrome中不起作用的图像
- toFixed是'Don’不要做任何事
- 用JS转换任何以hashtag开头的东西.但前提是超过3个字符
- Gradle exec任务在用Karma运行javascript单元测试时挂起
- 任何在Android中与WebView通信的方式
- 任何以0开头的号码都被认为是电话号码
- 如何在不支持HTML5或flash的任天堂3ds浏览器中播放视频
- SASS任务在gulp with sourccomments: 'map'生成'断言失败'
- 在发射下键时禁用任天堂3DS滚动功能
- 在Backbone中,model.get('foo')和model.attributes.foo之间的任
- Fine uploader Async任务在Chrome中工作,但在IE11中不工作