javascript - 加载 web View 中的 NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9814)?

标签 javascript ios google-maps app-transport-security

我有一个 url which domain.com/map.jsp 这是一个 JSP 页面,它显示带有自定义标记的谷歌地图,用于编写一些 javascript 代码。当我在设备上加载此页面时,它显示错误为 < strong>NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9814)。但它在 iOS 模拟器上运行良好。

我在谷歌上搜索了很多,但没有解决方案。

1.再见传递url

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

2.仅指定 url。我不能对 url 进行硬编码,因为 url 可以是动态的,所以下面的代码对我不起作用。

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>yourdomain.com</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>

3.我在 mywebview 类中添加了以下方法,但没有调用任何方法

-(BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:
(NSURLProtectionSpace *)protectionSpace {
    return YES;
}

-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:
(NSURLAuthenticationChallenge *)challenge {
    if (([challenge.protectionSpace.authenticationMethod
          isEqualToString:NSURLAuthenticationMethodServerTrust])) {
        if ([challenge.protectionSpace.host isEqualToString:@"mydomain.com"]) {
            NSLog(@"Allowing bypass...");
            NSURLCredential *credential = [NSURLCredential credentialForTrust:
                                           challenge.protectionSpace.serverTrust];
            [challenge.sender useCredential:credential
                 forAuthenticationChallenge:challenge];
        }
    }
    [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}

请提出为什么它在 iOS 设备上无法运行但在模拟器上运行良好。解决方案是什么?

最佳答案

我的 iPad 的日期/时间设置有问题。首先我尝试在 iPad 上的 chrome 上打开 google.com,然后它显示不安全的网络错误。所以我更改了 iPad 的日期/时间设置,我的问题得到解决。

关于javascript - 加载 web View 中的 NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9814)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919459/

相关文章:

ios - 设置 statusBar 样式不起作用 Objective-C

iphone - 无法使用 iTunes 11.0.1 安装临时分发

javascript - 谷歌地图 API JavaScript : nearbysearch callback function not calling

javascript - 扩展 jQuery UI Accordion 后,谷歌地图不再以其他 map 为中心

vb.net - 将 Google map 添加到 VB 2010 应用程序

javascript - typescript 对象解构结果为 "Property assignment expected."

javascript - 如何使用Javascript访问网站音频源?

iOS 无法选择/突出显示 PDF 中的文本

javascript - angularjs 显示/隐藏标签,点击同一个标签隐藏内容

javascript - 如何让我的 JavaScript 程序运行得更快?