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