iOS:在运行webview时排除某些url



我正在使用Swift,并有基于web的内容(外部网页)嵌入在WebView为我的本地应用程序。在该网页上,再次,这是在应用程序中,我需要使一个链接在Safari中打开,而不是在应用程序中。HTML网页上的目标_blank代码不工作(我希望它是那么容易),寻找正确的代码在Swift中做到这一点。

我已经使用了这个代码的uiwebview:

@IBOutlet var news: UIWebView!
   var theURL = "http://"
override func viewDidLoad() {
    super.viewDidLoad()
    loadWebPage()
}
func loadWebPage(){
    let requestURL = NSURL (string: theURL)
    let URLrequest = NSURLRequest (URL: requestURL!)
    news.loadRequest(URLrequest)

我已经为WKNaviagtionDelegate使用了以下代码:

func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: ((WKNavigationActionPolicy) -> Void)) {
    if (navigationAction.navigationType == WKNavigationType.LinkActivated && !navigationAction.request.URL!.host!.lowercaseString.hasPrefix("http://")) {
        UIApplication.sharedApplication().openURL(navigationAction.request.URL!)
        decisionHandler(WKNavigationActionPolicy.Cancel)
    } else {
       decisionHandler(WKNavigationActionPolicy.Allow)
    }
最好

,

因为你需要创建一个看起来像链接的按钮

应该可以:

UIApplication.sharedApplication().openURL(NSURL(string: "http://...")!)

如果按钮实际上在WebView的网页上…除非你在iOS中操纵链接,否则这个链接并不是真正由App控制的。看起来按钮上的HTML target="_new"标签可能在更高版本的iOS中有效。这是iOS 7中的一个bug,已经在7.0.3中修复了。尝试使用按钮上的HTML target标签为应用设置更高的iOS版本目标。如何在ios7中从WebApp打开Safari

最新更新