WKWebView не загружает веб-страницу на iOS 13 - PullRequest
2 голосов
/ 01 октября 2019

Я пытаюсь загрузить веб-страницу с помощью WKWebView на iOS 13 с помощью Swift. Он отлично работает в iOS 12. Проблема в том, что WKWebView показывает белый экран на iOS 13. Один и тот же 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
  • для реального устройства iOS12,4 это www.google.com

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Один из способов убедиться, что у вас всегда будет действительный URL-адрес перед выполнением запроса, - использовать 'if' вместо принудительного развертывания.

override func viewDidLoad() {
      super.viewDidLoad()

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

Вы также можете добавить туда инструкцию else или использоватьранний возврат, чтобы распечатать что-нибудь, если вы не зайдете внутрь.

Кроме того, чтобы убедиться, что URL-адрес действителен, вы можете отладить и проверить веб-просмотр, чтобы увидеть, если это nil. Если это так, то ваше решение - добавить ваш код в viewWillAppear вместо viewDidLoad.

0 голосов
/ 01 октября 2019

Я попробовал это также с версией iOS 12.2 на симуляторе и дает ту же проблему, так что я вижу, что проблема на симуляторах моего устройства сама, на реальном устройстве работает нормально

...