【问题标题】:NSAllowsArbitraryLoadsInWebContent in CN1CN1 中的 NSAllowsArbitraryLoadsInWebContent
【发布时间】:2017-02-26 09:03:40
【问题描述】:

我正在尝试处理 Apple 对 Codename One 的 http 限制。

根据 iOS Cocoa 密钥文档,NSAllowsArbitraryLoadsInWebContent 将按照以下说明在 iOS 10 上运行:

仅适用于要加载的内容的可选布尔值 进入以下类的实例:

WKWebView

UIWebView(仅限 iOS)

WebView(仅限 macOS)

将此键的值设置为 YES 以获得对 ATS 政策的豁免 您的应用程序的 Web 视图,而不会影响 ATS 规定的安全性 你的 NSURLSession 连接。

默认值为 NO。

要支持旧版本的 iOS 和 macOS,您可以使用此键 并且仍然手动配置 ATS。为此,将此键的值设置为 YES 并配置 NSAllowsArbitraryLoads 子键。

如果您将此键添加到您的 Info.plist 文件中,那么,无论 键的值,ATS 忽略 NSAllowsArbitraryLoads 的值 钥匙。从 iOS 10.0 和 macOS 10.12 开始提供。

我的第一个问题是:

BrowserComponent 会暴露 WKWebView 还是 UIWebView?在这种情况下,有问题的 Cocoa 密钥将起作用,并允许我避免 iOS 10 的危险 NSAllowsArbitraryLoads。

第二个问题:

为确保与早期版本的兼容性,我知道我应该这样做:

  • 将 NSAllowsArbitraryLoads 设置为 true(由于以下几点,这将在 iOS 10 中被忽略)。

  • 将 NSAllowsArbitraryLoadsInWebContent 设置为 true(这在 iOS 9 中将被忽略,将使用 NSAllowsArbitraryLoads)。

我说的对吗?

谢谢

【问题讨论】:

    标签: plist codenameone


    【解决方案1】:

    我不明白您尝试采取什么步骤,但如果您尝试在您的应用程序中允许 http URL,Codename one 通过允许您添加此构建提示使其变得简单

    ios.plistInject=<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict><key>CFBundleURLTypes</key><array><dict><key>CFBundleURLName</key><string>com.mycompany.myapp</string></dict><dict><key>CFBundleURLSchemes</key><array><string>MyApp</string></array></dict></array> 
    

    相应地更改com.mycompany.myappMyApp

    只需添加该构建提示,您的 http / https URL 即可在所有 iOS 版本(包括 iOS 9 和 10)上无缝运行。

    我目前在我的一些应用上使用它,它运行良好,也在 10.1 beta 3 上进行了测试。

    编辑:

    再次阅读您的问题后,我意识到您的问题没有得到回答:

    是的,即使 BrowserComponent 不暴露 UIWebView,该键也可以工作。 (基于个人测试)

    只需使用NSAllowsArbitraryLoads 并将其设置为true,如上所述,它会处理所有事情。 NSAllowsArbitraryLoads 将仅在您设置 NSAllowsArbitraryLoadsInWebContent 时在 iOS 10 中被忽略。

    【讨论】:

    • 谢谢,但您不会冒被 Apple 拒绝的风险,将 NSAllowsArbitraryLoads 设置为 true 吗?
    • 不,我已经使用该密钥提交了 3 个应用程序,但没有一个被拒绝
    • 我还是一头雾水。我的问题是在 iOS 10 及更高版本中,即使我们通过“NSAllowsArbitraryLoads”处理,我们是否需要使用“NSAllowsArbitraryLoadsInWebContent”?请确认。如果不需要,为什么 Apple 会为 Web 客户端带来“NSAllowsArbitraryLoadsInWebContent”属性?
    猜你喜欢
    • 1970-01-01
    • 2017-04-13
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    相关资源
    最近更新 更多