iOS:WKWebView NSAllowsArbitraryLoadsInWebContent和NSAllowsArbitraryLoads冲突

时间:2018-10-04 17:59:44

标签: cordova ionic-framework wkwebview

我有一个移动应用程序,有几个人在自己的服务器上运行该应用程序。因此,没有集中式服务器。其中许多用户使用自签名证书(因为他们没有在WAN上公开服务器和/或使用VPN)

在尝试将我的应用程序从UI WebView for iOS迁移到WKWebview时,我遇到了问题。

  1. 首先,我正在使用cordova-plugin-advanced-http进行HTTP访问。不幸的是,它的setSSLCertMode("nocheck", {})不适用于iOS中的自签名证书。在Android中运作良好。我也为此created遇到了一个问题。

  2. 为使事情正常进行,我添加了 (我尝试将其插入代码块中,但是它一直在切断代码,请看图...)

<config-file parent="NSAppTransportSecurity" target="*-Info.plist">
  <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true />
  </dict>
</config-file>

这解决了连接问题。但是,我还需要使用<img src= />从该自签名证书服务器显示图像。这需要我添加:

<config-file parent="NSAppTransportSecurity" target="*-Info.plist">
  <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true />
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true />
  </dict>
</config-file>

但是似乎添加NSAllowsArbitraryLoadsInWebContent会导致NSAllowsArbitraryLoads出现问题,并且我的连接再次失败。

有人经历过吗?有解决方法吗?

我知道添加这些密钥会触发一次苹果审核-我很确定我有一个合理的答案:我不控制服务器-使用我的应用的每个用户都有自己的

谢谢

编辑:我刚刚在其他地方读到,如果IOS 10+同时检测到两个密钥,它将NSAllowsArbitraryLoads忽略,因为NSAllowsArbitraryLoadsInWebContent的限制更大。它还说,仅执行NSAllowsArbitraryLoads就应同时显示WKWebView图像和常规HTTP连接。对我来说似乎并非如此。这是我仅对自签名证书使用NSAllowsArbitraryLoads时看到的错误

enter image description here

0 个答案:

没有答案