web-dev-qa-db-ja.com

WKWebViewのwebViewDidFinishLoad

UIWebViewからWKWebViewに移行する必要があり、これに問題があります。 「WKWebView」にはメンバー「リクエスト」がないようです。 WKWebViewを使用してこの状況を処理する方法はありますか? URLをロードするだけで、「。pdf」が含まれている場合はボタンを表示するだけです。

func webViewDidFinishLoad(_ webView : WKWebView) {
    UIApplication.shared.isNetworkActivityIndicatorVisible = false

    if (webView.request?.url!.absoluteString)!.range(of: ".pdf") != nil {
        pdfBackButton.isHidden = false
    }
    else {
    pdfBackButton.isHidden = true}

}
7
ernestocattaneo

追加 "WebKit"クラスへのフレームワーク。

override func viewDidLoad() {
     super.viewDidLoad()
     let myWebView:WKWebView = WKWebView(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
     myWebView.navigationDelegate = self;
     let url = URL(string: "https://www.Apple.com")!
     myWebView.load(URLRequest(url: url))
     self.view.addSubview(myWebView)
}

次に、WKNavigationDelegateメソッドを実装します

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    UIApplication.shared.isNetworkActivityIndicatorVisible = false
    let url = webView.url
    print(url as Any) // this will print url address as option field
    if url?.absoluteString.range(of: ".pdf") != nil {
         pdfBackButton.isHidden = false
         print("PDF contain")
    }
    else {
         pdfBackButton.isHidden = true
         print("No PDF Contain")        
    } 
}

これがお役に立てば幸いです。

6

WKNavigationDelegatewebView(_:didFinish:) 関数を実装できます。

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    UIApplication.shared.isNetworkActivityIndicatorVisible = false
    let url = webView.url

    if url?.absoluteString.range(of: ".pdf") != nil {
        pdfBackButton.isHidden = false
    }
    else {
        pdfBackButton.isHidden = true
    }
}
2
mservidio