【发布时间】:2017-12-16 17:00:28
【问题描述】:
我有很多 .pdf 格式的文件。我在集合视图中显示文件的名称。现在在 didSelectItemAtIndex 方法中,我想打开 Acrobat Reader 来打开 pdf 文件。我该如何实施? Acrobat Reader 是否还有 URL Scheme 以便我可以检测应用程序是否在手机上?
【问题讨论】:
我有很多 .pdf 格式的文件。我在集合视图中显示文件的名称。现在在 didSelectItemAtIndex 方法中,我想打开 Acrobat Reader 来打开 pdf 文件。我该如何实施? Acrobat Reader 是否还有 URL Scheme 以便我可以检测应用程序是否在手机上?
【问题讨论】:
这是 Adobe 阅读器的应用架构:
com.adobe.Adobe-Reader
在 Swift 中,您可以执行以下操作:
var docController: UIDocumentInteractionController?
if let path = Bundle.main.path(forResource: "PDF-NAME", ofType: "pdf") {
let targetURL = NSURL.fileURL(withPath: path)
docController = UIDocumentInteractionController(url: targetURL)
let url = NSURL(string:"com.adobe.Adobe-Reader:");
if UIApplication.shared.canOpenURL(url! as URL) {
docController!.presentOpenInMenu(from: .zero, in: self.view, animated: true)
print("Adobe-Reader")
}else{
print("Adobe-Reader is not installed")
}
}
并在 plist 中添加以下应用架构。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>com.adobe.Adobe-Reader</string>
</array>
【讨论】:
首先获取您的 pdf 文件的路径。他们称之为通过acrobat reader打开pdf
UIApplication.shared.open(URL(string: "com.adobe.adobe-reader://PDFFilePath")!)
但在此之前,确认阅读器是否已经安装并没有什么坏处
if UIApplication.shared.canOpenURL(theURL! as URL) {
}
【讨论】: