我想通过我的应用在Safari中打开本地保存的图像。
当我的应用加载时,我将图像放在“/Users/username/Pictures/xxx.jpg”中。如果我直接打开Safari并输入“file:///Users/username/Pictures/xxx.jpg”或“file://localhost/Users/username/Pictures/xxx.jpg”,则会在浏览器中打开图像。 / p>
但如果我尝试通过我的应用程序打开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网址,比如http://www.google.com,该应用会打开带有指定网址的Safari。
我在Simulator上尝试这个并且没有将图像保存在我的apps文件夹中,只是为了确保图像没有沙盒。即使我将图像放在我的apps文件夹中,也会收到失败消息。
请注意:我没有使用UIWebView,因为它会破坏业务需求。
答案 0 :(得分:1)
您无法通过打开Safari浏览器来访问本地文件,因为它是沙盒,无法访问应用程序包或目录中包含的文件。您可能需要更改是否可以更改业务需求并使用UIWebView