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

时间:2015-09-11 14:48:07

标签: html ios swift webview uiwebview

我正在使用Swift,并在我的原生应用程序中嵌入了WebView中的基于Web的内容(外部网页)。在该网页上,再次,这是在应用程序中,我需要在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)
    }

Best,Drew

2 个答案:

答案 0 :(得分:0)

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

应该做的诀窍:

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

答案 1 :(得分:0)

如果该按钮实际位于WebView的网页上...除非您操纵iOS中的链接,否则该链接实际上不受应用程序控制。它看起来像HTML目标=" _new"按钮上的标签可能适用于更高版本的iOS。它是iOS 7中的一个错误,已在7.0.3中修复。使用按钮上的HTML目标标记为App尝试更高的iOS版本目标。 How to open Safari from a WebApp in iOS 7