2016-07-22 2 views
0

私はこのコードを書いた:UIWebViewがSafariで自分のリンクを開けないのはなぜですか?

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

をし、それはすべての通常のURLのために動作します。しかし、私は次のコードでの画像/ gif形式をクリックした時:

<a href="https://cdn-images-1.medium.com/max/800/1*IR7oti7mEsYunzp_HhcNig.gif" 
target="_blank" class="c" 
style="background-image: url('//cdn.iframe.ly/pj?url=https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1*IR7oti7mEsYunzp_HhcNig.gif&amp;width=1280&amp; 
key=9b0e65e32a5412cf736c430972d914c33f46250b&amp;cache=temp');"> 
1*IR7oti7mEsYunzp_HhcNig.gif </a> 

それはのUIWebViewの内側に、私のアプリケーションでは、このGIF/URLを開きます。

Safariでもgif/URLを開くようにするにはどうすればよいですか?

+0

は確かですその 'LinkClicked'ナビゲーションタイプでリンク結果?私は 'navigationType' - ' print( "\(navigationType)") 'を' '期待値であることを確認するために印刷してみます。 – dylansturg

+0

@DylanS 'ナビゲーションタイプ:UIWebViewNavigationType' =/ – Doe

+0

' print( "\(navigationType == UIWebViewNavigationType.LinkClicked)") 'これは単に値を表示するのではなく、タイプを表示しているだけです。 – dylansturg

答えて

0

コード内のどこかで何かが壊れている必要があります。このような の作業罰金:

import UIKit 

class ViewController: UIViewController, UIWebViewDelegate { 

@IBOutlet var webView : UIWebView? 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    self.webView?.loadHTMLString("<a href='https://cdn-images-1.medium.com/max/800/1*IR7oti7mEsYunzp_HhcNig.gif' target='_blank' class='c' style='background-image: url('//cdn.iframe.ly/pj?url=https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1*IR7oti7mEsYunzp_HhcNig.gif&amp;width=1280&amp; key=9b0e65e32a5412cf736c430972d914c33f46250b&amp;cache=temp');'> 1*IR7oti7mEsYunzp_HhcNig.gif </a>", baseURL: NSURL(string: "testurl.com")) 
} 

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { 
     if navigationType == UIWebViewNavigationType.LinkClicked { 
      UIApplication.sharedApplication().openURL(request.URL!) 
      return false 

     } 

    return true 
} 
} 

Screenshot with the result

+0

マイ・ナビゲーション・タイプは、「ナビゲーション・タイプ:UIWebViewNavigationType'」を表示します。私はそれが問題だと思う – Doe

関連する問題