gpt4 book ai didi

ios - 如何在 iOS Safari 中打开捆绑文件?

转载 作者:行者123 更新时间:2023-11-29 10:48:56 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com