【问题标题】:Load internet url to Webview将 Internet url 加载到 Webview
【发布时间】:2015-11-03 10:52:31
【问题描述】:

我正在做一个项目,我想将互联网 URL 加载到我的 UIWebView

我已经设法像这样加载本地存储的 html 文件:

if let url = NSBundle.mainBundle().URLForResource("index", withExtension: "html") {
        webView.loadRequest(NSURLRequest(URL: url))
    }

因此,基于此,我尝试这样做:

if let url = NSURL(string: "http://google.com") {
            webView.loadRequest(NSURLRequest(URL: url))
        }

但这似乎不起作用。

【问题讨论】:

    标签: swift url webview


    【解决方案1】:

    Apple 在 iOS9 中引入了 App Transport Security。这是一项新的安全功能,可在处理 Web 请求时强制执行某些安全实践。例如,它不允许通过 HTTP 发送请求,因为它只允许 HTTPS 请求。好消息是,您可以通过将其添加到项目的 Info.plist 文件中来覆盖这些安全要求:

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

    请注意,这会规避 ATS 附带的所有安全要求。 仅当确实没有其他方法时,您才应该在生产中使用它。如果您只访问 1 个非 HTTP url,您可以仅为该 1 个域禁用 ATS:

    <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/>
        </dict>
      </dict>
    </dict>
    

    【讨论】:

    • 这会导致苹果拒绝应用吗?
    • 如果您有正当理由这样做,您应该没问题。但是,如果您正在加载的域提供 HTTPS,您应该明确地使用 https:// url
    • 我会试试看会发生什么!非常感谢!
    【解决方案2】:

    正如 joern 所说,如果您不想覆盖它,安全更新要求所有请求都通过 HTTPS。

    所以基本的快速解决方法就是将链接更改为 https。

    所以是这样的:

    if let url = NSURL(string: "https://google.com") {
            webView.loadRequest(NSURLRequest(URL: url))
        }
    

    【讨论】:

      【解决方案3】:

      试试下面的代码:

      let url = "http://google.com"
      let requestURL = NSURL(string:url)
      let request = NSURLRequest(URL: requestURL!)
      WebView.loadRequest(request)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-28
        • 1970-01-01
        • 2013-04-18
        • 2016-07-18
        相关资源
        最近更新 更多