作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 Safari 中打开 App bundle 中的文件,就像在 Safari 中从服务器打开文件一样。
例如:在Safari中打开pdf文件是这样的:
NSURL *urlNeedToOpen = [NSURL URLWithString:@"http://www.education.gov.yk.ca/pdf/pdf-test.pdf"];
[[UIApplication sharedApplication] openURL:urlNeedToOpen];
我下载 pdf-test.pdf 文件并将其复制到我的包中,然后尝试像这样打开:
NSURL *urlNeedToOpen = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"pdf-test" ofType:@"pdf"]];
[[UIApplication sharedApplication] openURL:urlNeedToOpen];
但是没有任何反应,我可以像这样通过 UIDocumentInteractionController 预览这个 pdf 文件:
UIDocumentInteractionController *docController = [UIDocumentInteractionController interactionControllerWithURL:urlNeedToOpen];
docController.delegate = self;
[docController presentPreviewAnimated:YES];
但这不是我想要的,我想直接通过 Safari 打开 bundle 中的文件。我可以吗?
最佳答案
本质上,不,您不能在另一个应用程序(甚至是 Safari)中打开应用程序的捆绑资源中的本地文件 URL。这样做的原因是该资源位于您的应用程序的沙箱中 - 如果 Safari 访问它会违反 iOS 的安全框架。这是设计使然(除了 canOpenURL: 之外,确实应该更明显地表明没有其他应用程序可以打开它。您可能需要考虑在以下位置提交错误:https://developer.apple.com/bug-reporting/)。
如果您绝对必须在应用程序包中分发资源,则可能需要考虑在托管 TextView 或 Web View 的 View Controller 中打开本地资源。
关于ios - 如何在 iOS Safari 中打开捆绑文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21254304/
我是一名优秀的程序员,十分优秀!