菜鸟教程小白 发表于 2022-12-12 16:05:25

ios - 在 iOS 9 中为应用内浏览器禁用 ATS?


                                            <p><p>iOS 9 引入 <a href="https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-SW14" rel="noreferrer noopener nofollow">App Transport Security (ATS)</a>鼓励使用安全连接。</p>

<p>这很好,但是如果我的应用程序有一个内置的网络浏览器,用户应该能够使用它来连接到任何网站?例如,Facebook 应用程序允许故事包含指向外部网站的链接。当用户点击此类链接时,它不会启动 Safari,而是启动应用内浏览器。</p>

<p>如果没有 <a href="https://stackoverflow.com/questions/30751053/ios9-ats-what-about-html5-based-apps" rel="noreferrer noopener nofollow">enabling the global NSAllowArbitraryLoads flag</a>,我怎样才能获得相同的行为? ?</p>

<p>我想要强制使用 https 的所有好处,但想在我的内部浏览器中禁用此检查。在理想情况下,Apple 将允许我在 UIWebView 上指定一个属性,以允许它加载不安全的 URL,而不是全部或全部。我无法将每个域都列入白名单,因为我不知道我的用户将加载哪些 URL。我正在寻找与 iOS 8 兼容的解决方案。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在这种情况下,您通常需要通过将 <code>NSAllowsArbitraryLoads</code> 设置为 true 来禁用 ATS。如果您知道 <em>可以</em> 支持 HTTPS 的特定 URL(例如您自己的服务器或您在 <code>UIWebView</code> 之外的应用程序中使用的 API 服务器),那么您可以创建一个异常并将这些异常设置为 <code>NSExceptionsAllowsInsecureHTTPLoads</code> 为 false</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 iOS 9 中为应用内浏览器禁用 ATS?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32106994/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32106994/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 iOS 9 中为应用内浏览器禁用 ATS?