【问题标题】:Why is my UIWebView showing lots of HTML instead of the local file?为什么我的 UIWebView 显示大量 HTML 而不是本地文件?
【发布时间】:2011-09-14 07:01:52
【问题描述】:

我的 iPhone 应用程序中集成了一个“下载管理器”,它允许用户将网页在线保存到他们设备上的文档文件夹中,以便离线和本地查看。这完美地工作,除了文件显示大量 HTML 代码而不是它们应有的样子。

这是带有文件的 UITableView:http://cl.ly/3D2g0o3C3a302J243D3v 这是包含 HTML 的 UIWebView,而不是通常的网页:http://cl.ly/2s1h3H3D1c1t3y1J2G0W

我正在像这样加载我的 UIWebView(看起来一切正常?):

NSURL *url = [[NSURL alloc] initFileURLWithPath:documentsDirectory]; 
NSURLRequest *req = [[NSURLRequest alloc] initWithURL:url];
[webView loadRequest:req];

为什么会发生这种情况,我可以做些什么来纠正这个问题?

【问题讨论】:

  • 为 url 创建一个 nslog 并检查您是否获得了正确的 url。
  • 好的,我已经输入了“NSLog(@"URL Being Loaded: %@", url);"它返回“正在加载的 URL:file://localhost/var/mobile/Applications/1186A8C1-54AA-45E2-8578-713E63E23874/Documents/network_file.phtml” - 这是正确的 :)
  • 如果将文档内容加载到 NSString 中,然后使用 UIWebView 的 loadHTMLString:baseURL: 会不会出现同样的问题?
  • 问题在于您的网址。这不是正确的网址。如果您尝试在网络上打开它。不会。您需要​​检查您的网址设置位置。
  • Wekwa,还没有尝试过... Gypsa,它在 Safari 上完美运行:S

标签: iphone objective-c ios xcode uiwebview


【解决方案1】:

使用这行代码我的朋友,

[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];

这是我之前使用的代码:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appSettingsPath = [documentsDirectory stringByAppendingPathComponent:@"index.html"];

现在,您的文档目录中有文件路径。 那么:

[webview loadHTMLString:SiteString baseURL:[NSURL fileURLWithPath:appSettingsPath]];

【讨论】:

  • 您还没有阅读我要执行的操作,我需要从 UITableView 中的文档目录中检索文件...
  • 我知道我的朋友。将 html 文件保存在您的文档目录中并使用 NSBundle 检索文件。
  • 谢谢,但它并不总是 HTML 文件,有时是 .png、.txt 或 .doc?
  • 好吧,这比我复杂一点,无论如何,你必须检查你有没有,如果你有一个 html,然后加载UIWebView,如果你有一个 *.png那么你必须为你保存的每种类型加载一个UIImageView,依此类推。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2019-03-14
  • 2021-05-23
  • 2023-03-19
  • 2015-07-10
  • 2021-12-14
相关资源
最近更新 更多