【问题标题】:Webview not working with iOS9 [duplicate]Webview 不适用于 iOS9 [重复]
【发布时间】:2016-01-18 21:52:27
【问题描述】:

我创建的应用程序不适用于 iOS 9。

import UIKit

    class WebViewController: UIViewController, UIWebViewDelegate {

        @IBOutlet var webView: UIWebView!
        override func viewDidLoad()
        {
            super.viewDidLoad()
            // Do any additional setup after loading the view.

            let requestURL = NSURL(string:"http://stackoverflow.com")
            let request = NSURLRequest(URL: requestURL!)
            webView.loadRequest(request)

            webView.delegate = self

        }

        override func didReceiveMemoryWarning()
        {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }

        func webViewDidStartLoad(webView: UIWebView)
        {
            print("Load started")
            UIApplication.sharedApplication().networkActivityIndicatorVisible = true
        }
        func webViewDidFinishLoad(webView: UIWebView)
        {
            print("Load finished")
            UIApplication .sharedApplication().networkActivityIndicatorVisible = false

        }
        func webView(webView: UIWebView, didFailLoadWithError error: NSError?)
        {
            print("Error = ", error)
        }
        func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool
        {
            print("URl ", request.URL?.absoluteString)
            return true
        }
    }

显示此消息。

2015-10-20 14:46:29.976 WebViewDemo[2802:84627] 加载 URL :https://stackoverflow.com/ 2015-10-20 14:46:30.041 WebViewDemo[2802:84745] App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。暂时的 可以通过应用程序的 Info.plist 文件配置异常。 2015-10-20 14:46:30.160 WebViewDemo[2802:84627] 加载失败 错误 :Error Domain=NSURLErrorDomain Code=-1022 "资源可以 未加载,因为应用程序传输安全策略需要 使用安全连接。” UserInfo={NSUnderlyingError=0x7fedabe113b0 {错误 Domain=kCFErrorDomainCFNetwork 代码=-1022 "资源不能被 加载,因为应用程序传输安全策略需要使用 安全连接。” UserInfo={NSErrorFailingURLStringKey=https://stackoverflow.com/, NSLocalizedDescription=资源无法加载,因为 应用传输安全策略需要使用安全的 连接。,NSErrorFailingURLKey=https://stackoverflow.com/}}, NSErrorFailingURLStringKey=https://stackoverflow.com/, NSErrorFailingURLKey=https://stackoverflow.com/, NSLocalizedDescription=资源无法加载,因为 应用传输安全策略需要使用安全的 连接。}

【问题讨论】:

  • 在 IOS 9 Nd 之后我们需要在 Info.Plist 中添加 NSAppTransportSecurity 打开 Info.Plist 作为源代码并复制粘贴到最后。 NSAppTransportSecurityNSAllowsArbitraryLoads
  • 我不会说这需要完成。理想情况下,您应该尽可能尝试使用安全连接。即 HTTPS 而不是 HTTP。
  • 也是导致此错误的相同代码吗?因为该错误引发了加载 Stack Overflow 的错误,而不是您的代码中的 Google。因此,对于此示例(基于您的错误),请使用 https://stackoverflow.com,因为 Stack Overflow 确实支持 HTTPS 连接。

标签: ios swift webview ios9


【解决方案1】:

你必须在你的.plist文件中添加这个

  1. 添加NSAppTransportSecurity:字典。
  2. 将名为:NSAllowsArbitraryLoads 的子项添加为Boolean:是

希望这会对你有所帮助。

【讨论】:

    【解决方案2】:

    在 .plist 文件的 NSAppTransportSecurity 字典下将 NSAllowsArbitraryLoads 键设置为 YES。如果 NSAppTransportSecurity 不存在,请手动编写。

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 2020-09-29
      相关资源
      最近更新 更多