2011-08-09 33 views
0

可能重复:
iPhone Mobile Safari File System Access无法通过应用程序来打开Safari

我想通过我的应用程序在Safari中打开本地保存的图像。

当我的应用程序加载时,我将图像放在“/Users/username/Pictures/xxx.jpg”中。如果我直接打开Safari并输入“file:///Users/username/Pictures/xxx.jpg”或“file://localhost/Users/username/Pictures/xxx.jpg”,图像将在浏览器中打开。

但是,如果我尝试通过我的应用程序打开Safari,Safari和图像都不会打开。以下是我用来通过我的应用程序打开Safari的代码。

NSString *str = [NSString stringWithFormat:@"file:///Users/username/Pictures/xxx.jpg"]; str = [str stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [NSURL URLWithString:str];
if (![[UIApplication sharedApplication] openURL:url])
NSLog(@"%@%@",@"Failed to open url:",[url description]);

一个值得一提的一点是,如果我打开一个HTTP URL,说http://www.google.com,应用程序打开Safari浏览器与指定的URL。

我在模拟器上试过这个,并没有将图像保存在我的应用程序文件夹中,以确保图像不是沙盒。即使将图像放入我的应用程序文件夹中,我也会收到失败消息。

请注意:我没有使用UIWebView,因为它会打败业务需求。

回答

1

您无法通过打开Safari浏览器来访问本地文件,因为它是沙盒式的,无法访问包含在您的应用程序包或目录中的文件。您可能需要更改,看看您是否可以更改业务需求并使用UIWebView

+0

正如我刚才提到的,我没有将图像保存在应用程序文件夹中(请参阅上面的“请注意”),它是如何变成沙盒的?而且,如果我直接在Safari中输入URL而不是导航,则能够打开它。 – Sahil

+0

由于在模拟器中,您可以在Safari Web浏览器中预览Mac上的本地文件(这是为了让人们进行Web开发,以在本地浏览器中预览其移动网站),但是当您进入设备时,Safari将不会能够访问本地文件 –

+0

根据您以前的评论,它不会发生。但只是为了确保... 有没有一种方法可以在Safari或通过我的应用程序保存本地保存的.mobileconfig文件? – Sahil

相关问题