该应用程序在UIWebView中打开文章,我需要在SFSafariViewController上打开这些文章的链接(这是强制性的)。到目前为止,它将在webview上打开并弄乱我的用户体验。我的WebView加载HTML字符串并加载内容,如下所示。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.webView.loadHTMLString(article.content, baseURL: nil)
}
通过内容,链接将会出现,如下图所示。 screenshot of the app
如何在SFSafariViewController上打开我的文章的链接?我应该怎么做,因为它来自HTML字符串,我不知道文章链接网址?
答案 0 :(得分:0)
那很有用。创建一个名为allowLoad的Bool变量,以允许或不加载webview内容。在webview上加载文章之后,allowLoad将变为false,因此下一个请求将只能在链接触摸上开始,然后它将显示SFSafariViewController(我不知道你是否缺少,所以你可以问我任何事情)< / p>
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
}