【发布时间】:2019-10-17 15:42:57
【问题描述】:
我在使用以下代码时遇到了问题。它应该将本地 HTML 文件加载到 WKWebView 中。
它在我尝试过的任何模拟器(ios 12 / ios 13)上都能正常工作。
由于我还不明白的原因,它在设备上不起作用。 相反,我得到一个空白屏幕。使用 Safari 调试器调试 webview 显示页面是“about:blank”。它没有加载我的文件...为什么?
请注意,我已经通过从手机下载应用程序容器检查了文件是否存在,并且文件在那里......
- (void)loadIndexConteneurWithHash:(NSString *)hash
{
NSString *fileName = @"index.html";
NSString *subpath = hash ? [NSString stringWithFormat:@"%@#%@", fileName, hash] : fileName;
NSString *rootContainerDirectoryPath = [NSFileUtility pathRelativeToContentDirectoryForSubpath:@"/www/v2"];
NSURL *URL = [NSURL URLWithString:subpath relativeToURL:[NSURL fileURLWithPath:rootContainerDirectoryPath]];
[[NSURLCache sharedURLCache] removeAllCachedResponses];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10.0f];
[self.webView performSelectorOnMainThread:@selector(loadRequest:) withObject:request waitUntilDone:true];
}
编辑:这个问题不是 Load local web files & resources in WKWebView 的重复问题
我没有从包中加载我的 HTML 文件,而是从我的问题中最初提到的应用程序容器中加载。我也试过loadFileURL的方法,也不管用。
【问题讨论】:
-
这个
[NSFileUtility pathRelativeToContentDirectoryForSubpath:@"/www/v2"]方法应该做什么? -
@CZ54 它给出了相对于
/var/mobile/Containers/Data/Application/<...>/Library/Application Support/<my app id>/LocalContents的给定路径的绝对路径@ -
委托方法告诉我们什么?好的还是错误?
-
@Cy-4AH
decidePolicyForNavigationAction被提出,我允许。但是didFailNavigation和didFinishNavigation都没有被调用... -
查看副本时,请注意当前接受的答案显示您需要致电
loadFileURL和load。不需要第二次调用load。你只需要loadFileURL。
标签: ios objective-c wkwebview