Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

WKWebView url alma

0 oy
194 kez görüntülendi
19, Temmuz, 2017 genel kategorisinde slymntrm tarafından soruldu

WKWebView ile sayfamı açtırıyorum ve url kontrol ederek uygulamama komut vermek istiyorum.

ben sayfaya tıkladığımda url değişiyor her url değiştiğinde kontrol edip istediğim url ye geldiğinde çalışacak komutu nasıl yazabilirim ?

20, Temmuz, 2017 yasin tarafından yorumlandı

WKWebView'le hiç çalışmadım daha önce.
Yarın müsait olduğumda kurcalayayım biraz.
Bakalım ne yapılabilir.

20, Temmuz, 2017 slymntrm tarafından yorumlandı

bekliyorum hocam :)

1 cevap

+2 oy
21, Temmuz, 2017 yasin tarafından cevaplandı
21, Temmuz, 2017 slymntrm tarafından seçilmiş
 
En İyi Cevap

WKWebView'in WKNavigationDelegate metodlarını kullanarak istediğin şeyi gerçekleştirebilirsin.

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {

    var webView:WKWebView! = nil

    override func viewDidLoad() {
        super.viewDidLoad()

        let conf = WKWebViewConfiguration()


        self.webView = WKWebView(frame: self.view.frame, configuration: conf)
        self.webView.navigationDelegate = self


        if let url = URL(string: "http://www.yasinturkoglu.com") {
            print("let load")
            self.webView.load(URLRequest(url: url))
            self.webView.allowsBackForwardNavigationGestures = true
            self.view.addSubview(self.webView)
            self.view.sendSubview(toBack: self.webView)
        }

    }

    func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
        print("error:\(error.localizedDescription)")
    }

    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
        if let targetURL = webView.url {
            print("targetURL:\(targetURL.absoluteString)")
        }
    }

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        if let arrivedURL = webView.url {
            print("arrivedURL:\(arrivedURL.absoluteString)")
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

didStartProvisionalNavigation veya didFinish navigation delegate metodlarına dönen webView, işlenen sayfanın url'sini optional olarak barındırıyor.

if let targetURL = webView.url {
      print("targetURL:\(targetURL.absoluteString)")
}

url'nin string karşılığını absoluteString'ile alabilirsin mesela.

21, Temmuz, 2017 slymntrm tarafından yorumlandı

uu hocam çok teşekkür ederim süper paylaşım olmuş,
ben bunu deneyeceğim.

...