javascript – 将数据传递到ios 8中的webview
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 将数据传递到ios 8中的webview,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1592字,纯文字阅读大概需要3分钟。
内容图文
我有一个应用程序在uiwebview component加载一个Web.我需要在uiwebview和web加载之间进行通信,反之亦然.
我的应用程序在早期的ios中运行正常(例如ios 7.x,6.x和5.x)但是现在我已经尝试使用ios 8并且它不起作用.我可以将目标c的信息发送到javascript(使用stringByEvaluatingJavaScriptFromString :),但我无法从javascript接收信息.
为此,我使用了相同的解释:ios pass values to native app.我的意思是,我实现:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"URL: %@", [request URL]);
NSURL *URL = [request URL];
if ([[URL scheme] isEqualToString:@"newprotocol"]) {
// something
return NO;
}
return YES;
}
当我发送:newprotocol:// xxxxx我总是收到:空白
我知道在ios 8中UIWebView发生了变化,但我想保持与早期版本的兼容性.
你知道在ios 8中是否可以这样做吗?做这个的最好方式是什么?
非常感谢你!
解决方法:
我也有这个问题.据我所知,看起来更改window.location.href不再触发webView:shouldStartLoadWithRequest:navigationType:在iOS 8的UIWebViewDelegate中.
基本上,您应该创建一个IFrame并设置其位置以触发委托方法:
var iframe = document.createElement("IFRAME");
iframe.setAttribute("src", "js-frame:myObjectiveCFunction");
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;
编辑:我仍然看到这个方法的奇怪问题,所以如果你使用它,YMMV.我最终将我的UIWebViews迁移到WKWebViews来解决问题:它比我预期的要少.我有条件地使用带有UIWebViews的旧视图控制器来向后兼容.
内容总结
以上是互联网集市为您收集整理的javascript – 将数据传递到ios 8中的webview全部内容,希望文章能够帮你解决javascript – 将数据传递到ios 8中的webview所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。