有没有一种快速的方法可以知道 WKWebView 是否可以在路径加载本地文件?
Is there a quick way to know if WKWebView can load a local file at path?
我有一个带有 WKWebView
的基本 iOS 应用程序,用于打开本地存储的各种文档文件。这是我关于如何在 Web 视图中加载示例 .doc 文件的代码片段,效果很好。
guard let fileURL = Bundle.main.url(forResource: "sampleFile", withExtension: ".doc") else {
fatalError("Failed to obtain file URL for: sampleFile.doc")
}
webView.loadFileURL(fileURL, allowingReadAccessTo: fileURL)
webView.navigationDelegate = self
现在,WKWebView
是否有办法在某些带有随机扩展名的文件无法打开或文件已损坏的情况下做出响应?
我是这个 WebKit
API 的新手,这就是为什么我要寻求最佳解决方案的原因?另外,是否有一些 WKNavigationDelegate
方法在文件损坏或其他情况下被调用?
在这种情况下,我相信您需要使用 WKNavigationDelegate,它会告诉您加载资源时是否出错:https://developer.apple.com/documentation/webkit/wknavigationdelegate/1455623-webview
然后您可以根据需要对错误做出响应。我可以看到您已经将调用 class 分配为 navigationDelegate,因此您需要做的就是实现 webView(_:didFail:withError:)
我有一个带有 WKWebView
的基本 iOS 应用程序,用于打开本地存储的各种文档文件。这是我关于如何在 Web 视图中加载示例 .doc 文件的代码片段,效果很好。
guard let fileURL = Bundle.main.url(forResource: "sampleFile", withExtension: ".doc") else {
fatalError("Failed to obtain file URL for: sampleFile.doc")
}
webView.loadFileURL(fileURL, allowingReadAccessTo: fileURL)
webView.navigationDelegate = self
现在,WKWebView
是否有办法在某些带有随机扩展名的文件无法打开或文件已损坏的情况下做出响应?
我是这个 WebKit
API 的新手,这就是为什么我要寻求最佳解决方案的原因?另外,是否有一些 WKNavigationDelegate
方法在文件损坏或其他情况下被调用?
在这种情况下,我相信您需要使用 WKNavigationDelegate,它会告诉您加载资源时是否出错:https://developer.apple.com/documentation/webkit/wknavigationdelegate/1455623-webview
然后您可以根据需要对错误做出响应。我可以看到您已经将调用 class 分配为 navigationDelegate,因此您需要做的就是实现 webView(_:didFail:withError:)