Mon*_*ndy 5 ios wkwebview swift4
我创建了一个简单的iOS应用程序,它使用WKWebView打开URL。在网站的网站上,有指向PDF文档的链接。在浏览器中打开网站时,可以单击链接,然后打开PDF文档。但是,当我单击链接时,进入我的应用程序并没有任何反应。我该如何解决?我是否必须在info.plist中添加一些内容?
感谢帮助。
SWIFT 3. *和4. * *
首先,您必须将该pdf文件下载到您的应用中,下载后必须获取该文件路径,然后该文件路径应按照的方式使用WKWebView。
let fileURL = URL(fileURLWithPath: filePathURLData as! String)
//print(fileURL)
webView.loadFileURL(fileURL, allowingReadAccessTo: fileURL)
Run Code Online (Sandbox Code Playgroud)
这filePathURLData是您已下载到应用程序中的实际文件路径,您必须将其转换为URL,然后需要将该文件加载到WKWebView
谢谢
希望这会帮助你。
这将显示WKWebView(doc,docx,xlsx,pdf,google doc,页面和任何文本文件中的任何文件)
您可能在锚标记中使用了 target="_blank"。这将打开一个新窗口来显示链接。WKWebView 阻止您尝试打开新窗口(至少默认情况下)。
下面的代码仍然不会创建新窗口,而是在当前 WKWebView 中打开 PDF 等链接。另一个选项似乎是创建一个新的 WKWebView 并返回它,因此 ios 并打开其中的链接,但我不希望每次点击 WKWebView 内的网站时都会创建额外的视图。
在你的 ViewController.viewDidLoad 中
webView.uiDelegate = self
Run Code Online (Sandbox Code Playgroud)
然后为委托添加扩展名
extension ViewController: WKUIDelegate {
/**
* Force all popup windows to remain in the current WKWebView.
* By default, WKWebView is blocking new windows from being created
* ex <a href="link" target="_blank">text</a>.
* This code catches those popup windows and displays them in the current WKWebView.
*/
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
// open in current view
webView.load(navigationAction.request)
// don't return a new view to build a popup into (the default behavior).
return nil;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7747 次 |
| 最近记录: |