Добавление панели загрузки в WKWebView и выбор ее цвета - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь добавить панель загрузки в верхней части моей страницы WebView. Где бы я добавил код. Также возможно ли изменить цвет этой полосы загрузки? enter image description here

    class CycleViewController: UIViewController, WKUIDelegate {

    var window: UIWindow?
    var webView: WKWebView!

    override func loadView() {
        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.uiDelegate = self
        view = webView

    }

    override func viewDidLoad() {
        super.viewDidLoad()

        webView.backgroundColor = UIColor.clear
        webView.backgroundColor = UIColor(red: 0.0196, green: 0.4, blue: 0.2902, alpha: 1.0)

        webView.isOpaque = false
        let myURL = URL(string: "https://jwelsh19.wixsite.com/countryday")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)

    }
}

1 Ответ

0 голосов
/ 05 ноября 2018

если вам не нужен пользовательский вид, вы можете использовать SFSafariViewController для этого. используйте код ниже

if let url = URL(string: "https://jwelsh19.wixsite.com/countryday") {
    let config = SFSafariViewController.Configuration()
    config.entersReaderIfAvailable = true

    let vc = SFSafariViewController(url: url, configuration: config)
    present(vc, animated: true)
}

если вы не хотите использовать SFSafariViewController, добавьте панель uiprogress к вашему представлению контейнера веб-просмотра и наблюдайте за прогрессом веб-просмотра и соответственно обновите UIProgressbar А для наблюдения за ходом веб-просмотра используйте средство наблюдения за веб-обзором

    webView.addObserver(self, forKeyPath: #keyPath(WKWebView.estimatedProgress), options: .new, context: nil)

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        if keyPath == "estimatedProgress" {
            progressView.progress = Float(webView.estimatedProgress)
        }
    }
...