2016-04-09 14 views
0

私はUIWebViewをサブクラス化して、ユーザーが "= Human"のような最後の文字列を追加するすべてのリンクを追加する方法を知りました。ユーザーがYahoo.comに行ってリンクをクリックすると、最後に "= Human"が表示されます。サブクラスUIWebViewですべてのリンクを追加する(Swiftで)

+0

不要です。ナビゲーションタイプをチェックすることができます。 http://stackoverflow.com/a/36436728/2303865 –

+0

@LeoDabusしかし、それはちょうどブールでチェックします。私が呼び出すことができ、私が望むURLを返すことができる方法はありますか? – jordanbana

+0

あなたは達成しようとしていることを示す必要があります。その接尾辞をurlに追加するだけです。absoluteStringはとてもシンプルです –

答えて

0

私はのUIWebView

をサブクラス化することができしかしdocsは言う:

WKのWebViewオブジェクトは、このような アプリ内ブラウザ用として、インタラクティブなWebコンテンツを表示します。

新しい開発の場合は、古いクラスUI WebView クラスの代わりにこのクラスを使用します。

これが私の作品:

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) 
    } 

} 

は編集:実際には、コードがif navigationAction.navigationType == .LinkActivatedブロックにリンクが何らかの理由でクリックされるたびに入りません。

[私]:WKWebViewのデリゲートメソッド

と私は出力を参照に失敗で:時々私はちょうど出力を参照

を[私]:ユーザーがリンクをクリック。

+0

@LeoDabus、私はiOSの初心者です。私はAppleのドキュメントとBNR IOSブックだけを見てmysellfによってそのコードを一緒に冠しました。なぜそれがうまくいかないのか知りたいのですが。 – 7stud

関連する問題