我正在尝试处理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).
我对吗?
谢谢
我不明白你试图采取什么步骤,但如果你试图在你的应用程序中允许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.myapp并MyApp相应地.
只需添加该构建提示,您的http/https URL就可以在包括iOS 9和10在内的所有iOS版本上无缝运行.
我目前在我的一些应用程序上使用它,它工作正常,在10.1 beta 3上也经过测试.
编辑:
在再次阅读您的问题后,我意识到您的问题没有得到解答:
是的,即使BrowserComponent没有公开UIWebView,该键也能正常工作.(基于个人测试)
NSAllowsArbitraryLoads如上所述,只需使用并将其设置为true,它将处理所有事情.NSAllowsArbitraryLoads只有在设置时才会在iOS 10中被忽略NSAllowsArbitraryLoadsInWebContent.
| 归档时间: |
|
| 查看次数: |
1016 次 |
| 最近记录: |