我有一个混合(Objective C + HTML)应用程序,我希望能够定期将远程文件(图像和 css)保存到用户的设备,但可以通过浏览器在其中加载它同一应用程序中的 webview 实例。
我认为不可能将文件保存到资源包本身(尽管在模拟器中可以),所以我认为我必须将文件保存到其他地方。但我不确定使用什么路径 HTML 文档仍然可以访问它。
基本上,我想做这样的事情:
NSURL* url = [NSURL URLWithString:@"http://myserver.com/August.png"];
NSString* filePath = @"[?????]/MonthlyImage.png";
NSData* data = [NSData dataWithContentsOfURL:url];
if (data)
{
NSError* error;
if ([data writeToFile:filePath options:NSDataWritingAtomic error:&error])
{
NSLog(@"Wrote");
}
if (error != nil)
{
NSLog(@"ERROR: %@", [error description]);
}
}
然后在我的 WebView 中,我希望能够像这样加载图像:
<img src="[??????]/MonthlyImage.png" />
我可以使用什么值来代替有效的 ??????
?这可能吗?
最佳答案
不允许保存到 bundle ,因为不允许修改应用程序二进制文件。
您可以尝试将该文件存储在文档文件夹中,然后从那里检索它。为了使其工作,重要的一点是还指定 baseURL
创建 UIWebVIew
时.
您可以通过以下方式检索文档目录:
NSString *documentsDirectory = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
if ([paths count] > 0) {
documentsDirectory = [paths objectAtIndex:0];
}
然后您将文件存储在那里,当您想要将其加载到 UIWebView
时,执行:
[_label loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:documentsDirectory]];
现在,<img src="MonthlyImage.png" />
将在您的文档目录中查找 png。
关于iphone - 将文件保存到 Web View 可以看到的用户设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680645/