【问题标题】:WKWebView is not loading web page on iOS 13WKWebView 未在 iOS 13 上加载网页
【发布时间】:2019-10-01 14:16:41
【问题描述】:

我正在尝试使用 Swift 在 iOS 13 上使用 WKWebView 加载网页。它在 iOS 12 中运行良好。问题是 WKWebView 在 iOS 13 上显示白屏。两者(iOS 12/iOS 13)使用相同的 URL,所以我 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
  }
}

safari 检查员结果:

  • 对于 iOS 13 模拟器是 about:blank
  • 对于真机 iOS 12.4 是www.google.com

【问题讨论】:

  • 您可以尝试几件事来隔离问题: 1. 使用视图检查器来验证 WKWebView 实际上是在视图层次结构中。 2. 使用 safari 检查 web 视图。您将需要 safari 技术预览,但它会连接到模拟器的 Web 视图并让您检查 Web 视图的内容。
  • @Rudedog 我用谷歌主页 url ("google.com") 进行了尝试,结果是模拟 ios13 的空白,它在 safari 检查器中使用真实设备 ios 12.4 给出了正确的响应
  • 有点像在黑暗中拍摄,但https://www.google.com 会起作用吗?也许它很难解析 URL,虽然我不明白为什么会这样

标签: ios swift wkwebview ios13


【解决方案1】:

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

override func viewDidLoad() {
      super.viewDidLoad()

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

如果你不进去,你也可以在那里添加一个 else 语句,或者使用提前返回来打印一些东西。

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

【讨论】:

  • 该网址是有效的,正如我所说,它在 IOS 12 上运行良好,但在 IOS 13 上却没有
  • @elhoucineayoub 调试您的代码并检查 webview 是否为nil。我有一种感觉,您试图在 viewDidLoad 中过早提出请求,并且必须按照我的回答将其移至其他地方。
  • 是的,我按照你的建议做了,如果 nil 值有问题,IOS12 上也将是 nil
  • 在这种情况下,您可以使用override func webView(WKWebView, didFailProvisionalNavigation: WKNavigation!, withError: Error),当 Web 视图加载内容时发生错误时调用它。打印出withError,这有望为您提供更多关于去哪里的信息。
【解决方案2】:

我在模拟器上用iOS 12.2版本也试过了,同样的问题,所以我看到模拟器不支持WKWebView,在真机上可以正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    相关资源
    最近更新 更多