为什么UIWebView无法在Safari中打开我的链接?
问题描述:
我写了这个代码:为什么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&width=1280&
key=9b0e65e32a5412cf736c430972d914c33f46250b&cache=temp');">
1*IR7oti7mEsYunzp_HhcNig.gif </a>
它在我的应用程序中,在UIWebView中打开这个gif/URL。
我该如何强制它会在Safari中打开该gif/URL?
答
必须在代码的其他地方打破某些东西。 做工精细是这样的:
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&width=1280& key=9b0e65e32a5412cf736c430972d914c33f46250b&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
}
}
+0
我的导航类型打印了“导航类型:UIWebViewNavigationType”。我认为这是一个问题 – Doe
确定该链接导致'LinkClicked'导航类型?我会尝试打印出'navigationType' - print(“\(navigationType)”),以确保它是预期的值。 – dylansturg
@DylanS它打印'导航类型:UIWebViewNavigationType' =/ – Doe
'print(“\(navigationType == UIWebViewNavigationType.LinkClicked)”)'这只是打印类型,而不是值。 – dylansturg