我用的是Swift 5。这段代码没有做任何事情,但如果它是一个PDF,是在网络上,它打开Safari罚款。
我想使用本地保存的本地PDF文件。
print(file.absoluteString)
UIApplication.shared.open(URL(filePath: file.absoluteString))
文件路径在这里,我可以验证文件是否存在
模拟器和iPad
file:///Users/admin/Library/Developer/CoreSimulator/Devices/503B73CA-5121-40CC-AC5C-6713F47A60F7/data/Containers/Data/Application/05C1515A-26FF-4EC8-B748-03F661BF7B15/Documents/00A1.pdf
file:///var/mobile/Containers/Data/Application/2797F491-6E67-492E-B6C1-03DAEDDA5783/Documents/00A1.pdf
我认为这是一个URL模式问题,文件://不被接受(也许我们可以白名单不知何故?)
5条答案
按热度按时间km0tfn4u1#
这是一个安全功能。您无法让Safari从iOS上的应用程序打开本地文件。您可以使用PDFView打开它,正如Alexey所建议的那样。但是,由于您的pdf文件不是应用程序包的一部分,但它位于Documents文件夹中,因此您需要以这种方式生成文件路径:
下面是完整的代码,包括下载部分:
gg0vcinb2#
尝试使用QLPreviewController,在单击文件或其他内容的位置添加此代码。
brccelvz3#
根据我得到的答案,没有办法让Safari打开本地文件。
所以我唯一能完美工作的方法就是使用
UIDocumentInteractionController
类:您的使用方式:
ijnw1ujt4#
使用关联的应用程序打开:
用一些精确的应用程序打开:
附言:
URL对象必须有效。本地文件的有效URL必须使用
更多关于URL的信息:https://stackoverflow.com/a/59464032/4423545
qfe3c7zg5#
选项1:
...还有一个使用PDFView的选项: