Swift3 使用Xcode 8和iOS 10.3将NSExceptionDomains添加到WKWebView的Info.plist中
更新:JS web请求也可以从Swift3 使用Xcode 8和iOS 10.3将NSExceptionDomains添加到WKWebView的Info.plist中,swift3,xcode8,ios10,wkwebview,Swift3,Xcode8,Ios10,Wkwebview,更新:JS web请求也可以从UIWebView工作,而不是WKWebView。但是,我需要用于JS互操作通信的WK版本 我一直在尝试让外部JS请求在Xcode 8和iOS 10.3上的WKWebView中工作,以访问Dark Sky API,但失败了。我尝试过的每件事都会给我带来相同的跨脚本访问错误(我已经删除了正在使用的URL字符串的详细信息): MyInfo.plist包含此代码段,基于大量搜索,它似乎是正确的(此处的“不安全”设置应该与此无关,因为我使用的是HTTPS): NSAppTr
UIWebView
工作,而不是WKWebView
。但是,我需要用于JS互操作通信的WK版本
我一直在尝试让外部JS请求在Xcode 8和iOS 10.3上的WKWebView
中工作,以访问Dark Sky API,但失败了。我尝试过的每件事都会给我带来相同的跨脚本访问错误(我已经删除了正在使用的URL字符串的详细信息):
MyInfo.plist
包含此代码段,基于大量搜索,它似乎是正确的(此处的“不安全”设置应该与此无关,因为我使用的是HTTPS):
NSAppTransportSecurity
NSExceptionDomains
darksky.net
n包括多个域
NSTemporary ExceptionalLowsInSecureHttpLoads
NSTemporaryExceptionMinimumTLSVersion
TLSv1.1
我在内部dict和外部dict中尝试了各种不同的设置(甚至尝试添加糟糕的NSAllowsArbitraryLoads
和NSAllowsArbitraryLoadsInWebContent
,都没有效果)
完全相同的JS代码在AndroidWebView
上工作,基本安全设置已切换,并且使用curl
,因此我知道Dark Sky API端点没有问题
我看到了一堆其他的SO答案,它们似乎表明使用了我的.plist
(请参见和)中的内容,但这些答案似乎没有起到作用
你知道我在这里遗漏了什么魔法iOS巫术吗?你是说
nsallowsraboraryloads
也不适合你吗?另外,当我看到TLS实际上是TLS1.2
。正确的,任意加载也不起作用。我尝试更新到TLS1.2,但也没有成功。看起来我可以将JS互操作构建到UIWebView中。但是,考虑到苹果鼓励所有人使用WKWebView,不得不切换是很烦人的。你是说nsAllowsArbilarLoads
也不适合你吗?另外,当我看到TLS实际上是TLS1.2
。正确的,任意加载也不起作用。我尝试更新到TLS1.2,但也没有成功。看起来我可以将JS互操作构建到UIWebView中。但是,考虑到苹果鼓励所有人使用WKWebView,不得不切换是令人恼火的。
[Error] Origin null is not allowed by Access-Control-Allow-Origin.
[Error] Failed to load resource: Origin null is not allowed by Access-Control-Allow-Origin.
[Error] XMLHttpRequest cannot load https://api.darksky.net/... due to access control checks.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>darksky.net</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>