在Safari中打开生成的html文件

有什么办法可以在Safari中的应用程序的Documents目录中打开一个保存的.html文件。 我有一个Template.html文件,根据用户的select而更改,并将其保存到temp.html文件,如何在Safari浏览器中打开它?

不幸的是,由于沙盒限制,您无法通过[[UIApplication sharedApplication] openURL:]在iOS的Safari-App中打开文件URL。

你有2个选项:

a)将该file upload到服务器,然后使用[[UIApplication sharedApplication] openURL:@“http:// …”]在Safari-App中打开它;

b)将Safari-WebViewembedded到显示html文件的应用程序中,如下所示:

 UIWebView *webView = [[UIWebView alloc] initWithFrame:...]; [self.view addSubView:webView]; NSURL *fileURL = [NSURL fileURLWithPath:...]; NSURLRequest *request = [NSURLRequest requestWithURL:fileURL]; [webView loadRequest:request]; 

self在这里是一个UIViewController。

编辑

要添加一个正确的逻辑分享button,你可以把包含UIWebView的ViewController放到一个UINavigationController中, 然后在其NavigationBar中添加一个UIBarButtonSystemItemActiontypes的UIBarButtonItem 。 如果BarButtonItem被挖掘,你会显示一个UIActivityViewController ,就像这样:

 - (void)viewDidLoad { [super viewDidLoad]; UIBarButtonItem *shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareButtonTapped:)]; self.navigationItem.rightBarButtonItem = shareButton; } - (void)shareButtonTapped:(id)sender { UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:... applicationActivities:nil]; [self.navigationController presentViewController:activityViewController animated:YES completion:nil]; } 

有关使用UIActivityViewController的更多信息,请参阅NSHipster