应用程序在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
}