uiactivity和uiwebview代表

时间:2018-06-10 19:39:06

标签: swift uiwebview uiactivity

我的项目中有一个uiactivity视图。 我想在页面加载时开始制作动画,并在webview最终加载时停止并隐藏。 这不符合我的情况。

我曾尝试使用UIWebViewDelegate,但已弃用。

 var scrollHeight = $(document).height();
    var scrollPosition = $(window).height() + $(window).scrollTop();
    if ((scrollHeight - scrollPosition) / scrollHeight === 0) {
        alert();
    }

1 个答案:

答案 0 :(得分:0)

最好使用WKWebView来实现,因为正如您所提到的那样,不推荐使用UIWebViewDelegate。

这是一个使用KVO监视WKWebView加载状态的简单示例。

import WebKit

class ViewController: UIViewController, WKUIDelegate {

    private var webView: WKWebView!

    override func loadView() {
         let webConfiguration = WKWebViewConfiguration()
         webView = WKWebView(frame: .zero, configuration: webConfiguration)
         webView.uiDelegate = self
         view = webView
         webView.addObserver(self, forKeyPath: "loading", options: .new, context: nil)
     }

     override func viewDidLoad() {
         super.viewDidLoad()
         let myURL = URL(string: "http://www.apple.com")
         let myRequest = URLRequest(url: myURL!)
         webView.load(myRequest)
     }

     override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
         guard let keyPath = keyPath, let change = change else { return }
         switch keyPath {
         case "loading":
             if let loading = change[.newKey] as? Bool {
                 print("Is webview loading: \(loading)")
             }
         default:
             break
         }
     }

     deinit {
        webView.removeObserver(self, forKeyPath: "loading")
     }
 }
相关问题