在SFSafariViewController上打开WebView链接



应用程序在UIWebView中打开文章,我需要这些文章的链接才能在SFSafariViewController上打开(这是强制性的)。到目前为止,它将在网络视图上打开,并扰乱我的用户体验。我的WebView加载HTML字符串并加载内容,如下所示。

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.webView.loadHTMLString(article.content, baseURL: nil)
}

有了内容,就会有链接,如下图所示。应用程序的屏幕截图

如何在SFSafariViewController上打开我文章的链接?既然它来自HTML字符串,而我不知道文章链接的url,我该怎么办?

成功了。创建一个名为allowLoad的Bool变量,以允许或不允许加载Web视图内容。在你将文章加载到webview上后,allowLoad将变为false,因此接下来的请求将只能在链接触摸时开始,然后它将显示SFSafariViewController(我不知道你是否欠写,所以你可以问我任何问题)

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if (navigationType == UIWebViewNavigationType.LinkClicked){
        let url = request.URL;
        if #available(iOS 9.0, *) {
            let sfViewController = SFSafariViewController(URL:url!, entersReaderIfAvailable: true)
            self.presentViewController(sfViewController, animated: true, completion: { () -> Void in
                print("May the force be with you!")
            })
        } else {
        }
    }
    return allowLoad
}
func webViewDidFinishLoad(webView: UIWebView) {
    return allowLoad = false
}

最新更新