CN1中的NSAllowsArbitraryLoadsInWebContent

Car*_*ier 2 plist codenameone

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

根据iOS Cocoa keys doc,NSAllowsArbitraryLoadsInWebContent将按照以下说明在iOS 10上运行:

一个可选的布尔值,仅适用于要加载到以下类的实例中的内容:

WKWebView

UIWebView(仅限iOS)

WebView(仅限macOS)

将此键的值设置为YES可在应用程序的Web视图中获得ATS策略的免除,而不会影响NSURLSession连接的ATS强制安全性.

默认值为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).

我对吗?

谢谢

Dia*_*ond 5

我不明白你试图采取什么步骤,但如果你试图在你的应用程序中允许http URL,Codename可以通过允许你添加这个构建提示来简化它

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> 
Run Code Online (Sandbox Code Playgroud)

改变com.mycompany.myappMyApp相应地.

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

我目前在我的一些应用程序上使用它,它工作正常,在10.1 beta 3上也经过测试.

编辑:

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

是的,即使BrowserComponent没有公开UIWebView,该键也能正常工作.(基于个人测试)

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