当前位置:  开发笔记 > 运维 > 正文

WKWebView如何显示http:pages的链接

如何解决《WKWebView如何显示http:pages的链接》经验,为你挑选了1个好方法。

我有一个WKWebView将使用在线收集的链接显示用户的网页.有时这些链接http:被阻止ATS.我尝试过简单地将链接更改为https:有时可用的链接.

但是,我经常收到错误" SSL发生了错误,无法与服务器建立安全连接".

有时页面只是重定向到http:,再次被阻止.其他时候https:页面只是"未找到".http:仅删除会导致"Unsupported URL"错误.

有没有办法WKWebView显示这些页面?

请不要"建议NSAllowsArbitraryLoads,甚至是每个域的例外(我事先都不知道域名是什么).这些页面在Safari上完全加载,甚至是移动游戏,所以它必须是可能的.



1> wottle..:

所以,简短的回答是NSAllowsArbitraryLoadsInWebContent,这将在iOS 10中运行良好.但是,如果您尝试在iOS 9设备上的Info.plist中运行它,它将无法运行.

如果你想在iOS 9和iOS 10上都能使用它,Apple推荐你做的就是将两个 NSAllowsArbitraryLoads AND NSAllowsArbitraryLoadsInWebContent放在你的Info.plist中.

在iOS 9中,由于它无法识别NSAllowsArbitraryLoadsInWebContent条目,因此它将允许应用程序中的所有http内容(包括您的WKWebview).这并不理想,但只要您确保您在其他地方的关键连接是安全的,那么让Apple强制执行它并不会带来太多帮助.

在iOS 10(大多数用户应该运行)中,iOS会忽略NSAllowsArbitraryLoads它是否也会看到NSAllowsArbitraryLoadsInWebContent.这意味着您的应用程序网络通信的其余部分将需要遵循ATS的安全要求,而WKWebView和UIWebView则不需要.这不是一个很好的解决方案,但是当你需要同时支持iOS 9和10时,它是Apple工程师推荐的解决方案.

请注意,当Apple确实开始要求ATS例外的理由时,该NSAllowsArbitraryLoadsInWebContent条目是触发理由需求的条目之一.但是,它比NSAllowsArbitraryLoads单独使用更好,你可以把它放在你的理由中,它应该被Apple接受.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有