iphone - 将文件保存到 Web View 可以看到的用户设备

标签 iphone ios uiwebview

我有一个混合(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/

相关文章:

ios - 单击主屏幕中的应用程序图标时获取 IOS 解析有效负载数据

iphone - 隐藏 TabBar 并显示 UIToolbar

ios - EXC_BAD_ACCESS 在 Swift 中使用泛型

iOS 6 上的 UIWebView 不显示 webarchives 中具有相对 URL 的图像

android - 如何测量 Android WebView 入站/出站流量

iphone - 使用 Objective C 读取发布到设备控制台的日志消息

ios - 后台联网进程

ios - 奇怪的将输出从 NSString 转换为 NSDate

ios - 我们是否需要为所有 iPhone/iPad 设备提供单独的 Storyboard?

ios - 在 UIViewController 上动态创建 UIWebView