UIWebView 不加载本地网页

Posted

技术标签:

【中文标题】UIWebView 不加载本地网页【英文标题】:UIWebView not loading local webpage 【发布时间】:2013-01-25 02:44:56 【问题描述】:

我有一个超级简单的网页,我只想加载一个本地文件。该文件是/Resources/About.html

这是我的代码:

NSString *urlPath = [[NSBundle mainBundle] URLForResource:@"About" withExtension:@"html"];
NSURL *url = [NSURL fileURLWithPath:urlPath];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[webView loadRequest:urlRequest];

怎么了?

【问题讨论】:

【参考方案1】:

URLForResource:withExtension 方法返回 NSURL,而不是 NSString。您可以直接在请求中使用该结果。

NSURL *URL = [[NSBundle mainBundle] URLForResource:@"About" withExtension:@"html"];
[webView loadRequest:[NSURLRequest requestWithURL:URL]];

【讨论】:

你的运行最好,但我现在收到此错误:Error Domain=WebKitErrorDomain Code=101 "The operation could not be completed. (WebKitErrorDomain error 101.)" 这可能是因为 url 编码。检查这些***.com/questions/1528060/… 和***.com/questions/2028379/uiwebkit-error-101【参考方案2】:
NSString * urlPath = [[NSBundle mainBundle] pathForResource:@"About" ofType:@"html"];
NSString *content = [NSString urlPath encoding:NSUTF8StringEncoding error:nil];
[webView content baseURL:[NSURL urlPath]];

【讨论】:

【参考方案3】:

我打赌 URLForResource 正在返回 nil(你能确认它不是吗?)。它不会执行递归搜索,并且如果您的“资源”文件夹是实际文件夹(XCode 中的蓝色)而不是组(Xcode 中的黄色),它将失败。尝试使用主包的 resourceURL 并将您的路径附加到它的末尾。

【讨论】:

以上是关于UIWebView 不加载本地网页的主要内容,如果未能解决你的问题,请参考以下文章

iOS UIWebView 允许所有三方cookie

swift 笔记:iOS与JavaScript的交互(一):UIWebView - 2.加载本地网页

UIWebView的加载本地数据的三种方式

UIWebView的使用

带有本地 HTML 文件的 UIWebView 不显示图像

如何仅加载请求的 UIWebView url 的特定部分?