2016-04-09 14 views
0

UIWebView alt sınıfının, kullanıcı sonunda "= İnsan" gibi bir dizeyle gittiği her bağlantıyı eklemek için nasıl alt sınıflara ayırabileceğimi merak ediyordum. Açık olmak gerekirse, kullanıcı Yahoo.com'a giderse ve daha sonra herhangi bir bağlantıya tıklarsa, sonunda "= İnsan" olacaktır.Altyazı UIWebView Her Bağlantıya Ekle (Hızlı)

+0

Gerek yok. navigasyon tipini kontrol edebilirsiniz. http://stackoverflow.com/a/36436728/2303865 –

+0

@LeoDabus Ama bu sadece bir boole ile kontrol ediyor. İstediğim URL'yi (ekli gibi) arayabileceğim ve döndürebileceğim bir yöntem var mı. – jordanbana

+0

neyi başarmaya çalıştığınızı göstermeniz gerekir. Sadece bu son ekini url'e ekleyin mututeString oldukça basittir –

cevap

0

Ben

UIWebView

alt sınıf olabilir ama docs ki: Böyle bir uygulama içi tarayıcı için olduğu gibi

A WK WebView nesne görüntüler interaktif web içeriği.

Yeni geliştirme için, daha eski UI WebView sınıfının yerine bu sınıfı kullanın.

Bu benim için çalışıyor:

import UIKit 
import WebKit 

class WebViewController: UIViewController, 
         WKNavigationDelegate { 

    var webView: WKWebView! 

    override func loadView() { 

     let webView = WKWebView() 
     webView.navigationDelegate = self 
     view = webView 

     let defaultUrl = NSURL(
      string: "https://www.yahoo.com" 
     ) 

     if let validDefaultUrl = defaultUrl { 
      let yahooRequest = NSURLRequest(URL: validDefaultUrl) 
      webView.loadRequest(yahooRequest) 
     } 

    } 

    //MARK: - WKNavigationDelegate methods: 

    func webView(webView: WKWebView, 
     decidePolicyForNavigationAction navigationAction: WKNavigationAction, 
     decisionHandler: (WKNavigationActionPolicy) -> Void) 
    { 
     print("[me]: In WKWebView delegate method") 

     if navigationAction.navigationType == .LinkActivated { 
      print("[me]: User clicked on a link.") 

      let request = navigationAction.request 

      if let url = request.URL, 
        newURL = NSURL(string: url.absoluteString + "=User") 
      { 
       print("[me]: New url is valid.") 
       print("[me]: New url is \(newURL.absoluteString)") 

       let newRequest = NSMutableURLRequest(URL: newURL) 
       decisionHandler(.Cancel) 
       webView.loadRequest(newRequest) 
      } 

     } 

     decisionHandler(.Allow) 
    } 

} 

Düzenleme: Aslında kod if navigationAction.navigationType == .LinkActivated bloğunu bir bağlantı nedense tıklandığında her zaman girmez.

[me]: Bazen sadece çıkış görmek WKWebView temsilci yönteminde

ve çıkış göremiyorum:

[me]: Kullanıcı bir bağlantıyı tıkladım .

+0

@LeoDabus, iOS başlangıçlıyım ve bu kodu sadece Apple docs ve BNR IOS kitabına bakarak mysellf ile birlikte koydum. Neden işe yaramadığını bilmek istiyorum. – 7stud