WKWebView无法在iOS 13上加载网页

时间:2019-10-01 14:16:41

标签: ios swift wkwebview ios13

我正在尝试使用Swift在iOS 13上使用WKWebView加载网页。它在iOS 12中正常工作。问题是WKWebView在iOS 13上显示白屏。这两个URL使用相同的URL(iOS 12 / iOS 13),因此我100%确信URL中没有问题。这是我加载网页的UIViewController:

import UIKit
import WebKit

class WebViewController: UIViewController , WKNavigationDelegate{

  var param : String!
  var webView: WKWebView!

  override func viewDidLoad() {
      super.viewDidLoad()

      let url = URL(string: "https://google.com")!
      webView.load(URLRequest(url: url))
  }

  override func loadView() {
      webView = WKWebView()
      webView.navigationDelegate = self
      view = webView
  }
}

野生动物园检查员结果:

  • 对于iOS 13相似器为about:blank
  • 对于真实设备,iOS 12.4为www.google.com

2 个答案:

答案 0 :(得分:1)

一种确保在发出请求之前始终拥有有效URL的方法是使用“ if”而不是强制展开。

override func viewDidLoad() {
      super.viewDidLoad()

      if let url = URL(string: MyData.url){
         webView.load(URLRequest(url: url))
      }
}

您也可以在此处添加else语句,或者如果不进入内部,则可以使用早期退货将内容打印出来。

除了执行此操作以检查url是否有效之外,您还可以调试并检查Web视图以查看其是否为nil。如果是这种情况,那么您的解决方案是将代码添加到viewWillAppear而不是viewDidLoad

答案 1 :(得分:0)

我也在iOS 12.2版本的模拟器上进行了尝试,并给出了相同的问题,因此我发现问题出在设备本身的模拟器上,而在实际设备上运行正常