菜鸟教程小白 发表于 2022-12-12 12:41:33

ios - 不同的行为 NSAllowsArbitraryLoadsInWebContent IOS 10.1 和 10.2


                                            <p><p>当在 IOS <strong>10.1</strong> 的 <code>UIWebView</code> 中加载某个 url 时,它在 </p> 上失败了

<blockquote>
<p>Error Domain=NSURLErrorDomain Code=-1200 &#34;An SSL error has occurred and a secure connection to the server cannot be made&#34;</p>
</blockquote>

<p>然而,相同的 webview 在 iOS 10.2 中加载正常</p>

<p>如果我使用 <code>NSAllowsArbitraryLoads = YES</code>,我可以在 10.1 和 10.2 中加载 url,但只能在 10.2 中使用 <code>NSAllowsArbitraryLoadsInWebContent = YES</code></p>

<p>我使用 <code>nscurl --ats-diagnostics</code> 测试了 URL,它通过了所有测试</p>

<p>我认为这个问题可能与网页中的 ip 位置验证有关。</p>

<p>10.1 和 10.2 在处理应用传输安全设置上有区别吗?这些是否记录在案?</p>

<p>---- 编辑 -----</p>

<p>通过查看 didFailLoadWithError 中的错误,我设法解决了我的问题。这准确地告诉了我导致失败的 url 是什么。我使用 <strong>NSExceptionRequiresForwardSecrecy</strong>=NO(使用 ats 诊断确定)</p> 将此 url 添加到我的 <em>Exception Domains</em>

<p>这解决了我的问题,但我仍然想了解 10.1 和 10.2 两个版本的区别。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>是的,即使使用 <code>NSAllowsArbitraryLoadsInWebContent</code> 键,iOS 10 的早期版本仍然在 WebView 中强制执行应用程序传输安全的前向保密要求。这是一个错误,由 Apple 修复。问题是早期版本的 iOS 带有该错误,因此您必须能够处理它,如果您不知道您的 Web 可以导航到的所有可能的 URL,这并不总是可能的。这可能是 Apple 延长了启用应用传输安全和所有提交到 App Store 的应用的最后期限的部分原因。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 不同的行为 NSAllowsArbitraryLoadsInWebContent IOS 10.1 和 10.2,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/41346258/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/41346258/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 不同的行为 NSAllowsArbitraryLoadsInWebContent IOS 10.1 和 10.2