在Safari中打开生成的html文件

时间:2014-06-19 15:21:17

标签: ios xcode safari

有没有办法在Safari中打开应用程序的Documents目录中保存的.html文件。    我有一个Template.html文件,我根据用户选择更改并将其保存到temp.html文件,如何在Safari中打开它?

1 个答案:

答案 0 :(得分:2)

很遗憾,由于沙盒限制,您无法通过[[UIApplication sharedApplication] openURL:]在iOS的Safari-App中打开文件网址。

您有两个选择:

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

b)在你的app中嵌入一个Safari-WebView,显示html文件,如下所示:

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

self 是这里的UIViewController。

修改

要添加具有适当逻辑的Share-Button,您可以将包含UIWebView的ViewController放入UINavigationController中,并将类型为 UIBarButtonSystemItemAction 的UIBarButtonItem添加到其NavigationBar中。如果点击了BarButtonItem,则会显示a 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