gpt4 book ai didi

ios - WKWebView如何显示指向http : pages的链接

转载 作者:可可西里 更新时间:2023-11-01 03:30:22 26 4
gpt4 key购买 nike

我有一个 WKWebView,它将使用在线收集的链接显示用户的网页。有时这些链接是被 ATS 阻止的 http:。我试过简单地将链接更改为 https:,这有时会奏效。

但是,我经常收到错误消息“发生了 SSL 错误,无法与服务器建立安全连接”。

有时页面只是重定向到 http:,这又会被阻止。其他时候,https: 页面只是“未找到”。删除 http: 只会导致 “Unsupported URL” 错误。

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

请不要“建议NSAllowsArbitraryLoads,甚至每个域的异常(我事先不知道域是什么)。这些页面在 Safari 甚至移动 safari 上都能完美加载,所以这一定是可能的。

最佳答案

所以,简短的回答是 NSAllowsArbitraryLoadsInWebContent,它在 iOS 10 中运行良好。但是,如果您尝试在 iOS 9 设备上的 Info.plist 中运行它,它不会工作。

如果你想让它在 iOS 9 和 iOS 10 上都工作,Apple 建议你做的是把 both 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 接受。

关于ios - WKWebView如何显示指向http : pages的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41557155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com