Objective-C的/ iOS版 - Safari浏览器打开本地的HTML文件(Objecti

2019-06-25 12:21发布

我有一个HTML文件保存在一个这样的临时目录:

NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *documentDirectory = NSTemporaryDirectory();
NSString *documentPath = [documentDirectory stringByAppendingPathComponent:@"mydocument.html"];
[fileManager createFileAtPath:documentPath contents:myHTMLDocumentData attributes:nil];

该文件是在我的临时文件创建。 之后,我想在Safari中打开该文档,但它不工作:

NSURL *url = [NSURL fileURLWithPath:documentPath];
[[UIApplication sharedApplication] openURL:url];

没有什么发生在屏幕上,没有错误。不过,如果我取代“URL”通过@“http://google.fr”,Safari浏览器推出与google.fr,我可以通过键入URL来访问我的临时文件“文件://localhost..../myHtmlDocument.html”在Safari。

希望你能帮我

Answer 1:

您无法通过Safari浏览器打开一个驻留在你的应用程序包文件(请参见iOS的安全模型 )。

你所需要的使用是UIWebView来显示使用应用内的文档内容– loadHTMLString:baseURL: ; 例如:

UIWebView* webView = [[[UIWebView alloc] initWithFrame:rect] autorelease];
[webView loadHTMLString:myHTMLSource baseURL:nil];
[self.view addSubview:webView];


Answer 2:

我不认为你可以做到这一点,因为两者UIApplication openURL :和UIDocumentInteractionController不会打开你的包内本地文件

难道不是下面,在你viewDidLoad

UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];
[self addSubview:webView];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath: documentPath]];
[webView loadRequest:request];


文章来源: Objective-c/iOS - Open local html file with Safari