ios - WKWebView 未在 iOS 13 上加载网页

标签 ios swift wkwebview ios13

我正在尝试使用 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
  • 最佳答案

    确保在发出请求之前始终拥有有效 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 - WKWebView 未在 iOS 13 上加载网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58186766/

    相关文章:

    ios - 删除数组中的 View 和引用

    objective-c - 在 objective-c 中在二传手中保留和释放

    ios - 我设置 ScrollView 偏移量以显示被键盘隐藏的文本字段。如果用户在显示键盘时滚动,则 ScrollView 会弹回

    ios - 键盘覆盖了我 View 底部的文本字段

    当 navigationController 弹出时,iOS WKWebView 在 ios 8 和 ios 9 上崩溃

    ios - WkWebview contentOffset 在设置动画 false 时不起作用

    javascript - Cordova iOS : Failed to load resource: The requested URL was not found on this server

    ios - 从 InputStream 读取 UInt32

    ios - 如何检测iPhone相机是否未拍摄图像?

    ios - 后端交互如何在像 iOS Activity 应用程序这样有多天数据要显示给用户的应用程序中工作?