2016-07-22 8 views
0

私は自分のローカルHTMLからリンクを開こうとしますが、私のコードで何が間違っているのか分かりません。 UIWebViewDelegateをクラスに追加し、デリゲートをビューに追加しました。サファリでリンクを開きませんuiwebview

class TableWebViewController: UIViewController, UIWebViewDelegate { 

@IBOutlet weak var infoWebView: UIWebView! 

var htmlName:String! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.infoWebView.delegate = self 
    self.loadHtmltoWebview(htmlName) 


    self.infoWebView.backgroundColor = UIColor.whiteColor() 
    self.infoWebView.opaque = false 

    // Do any additional setup after loading the view. 
} 

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

func loadHtmltoWebview(name: String) { 
    let htmlFile = NSBundle.mainBundle().pathForResource(name, ofType: "html") 
    let url = NSURL(string: htmlFile!) 
    let request = NSURLRequest(URL: url!) 

    infoWebView.loadRequest(request) 

} 

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { 


    if navigationType == UIWebViewNavigationType.LinkClicked { 
     //UIApplication.sharedApplication().openURL(request.URL!) 
     print(request.URL) 
     return false 
    } 
    return true 
} 

誰でも私を助けることができますか?ありがとう!

編集:プリント(request.URL)が出力に示されているので、彼は関数にジャンプしますが、Safariは

+0

コードをコピーしてXcodeに貼り付けても問題ありません。あなたはどんな問題に直面していますか?ログにはどのようなメッセージがありますか? – chengsam

+0

'UIApplication.sharedApplication()。openURL(request.URL!)'はあなたがコメントを書いたので実行されません。それともこれは意図されていますか? – FelixSFD

+0

テストの理由からコメントに入れました。 jaがリンクをクリックしてもopenURLは実行されない場合は何も起こりません – dtothepipo

答えて

0

IBであなたのUIWebViewsデリゲートのプロパティは、あなたのViewControllerに接続されていることを確認を開けないでください。それ以外の場合は、実装したメソッドは呼び出されません。 WebViewについてはIBのコンセントパネルに行き、UIWebViewDelegateプロトコルを実装するViewControllerに代理店アウトレットを接続します。

関連する問題