此代码打开acrobat阅读器
var url = new NSUrl($"com.adobe.adobe-reader://");
UIApplication.SharedApplication.OpenUrl(url);
我试图为此提供文件路径,但出现错误
var url = new NSUrl($"com.adobe.adobe-reader://{filepath}");
var url = new NSUrl($"com.adobe.adobe-reader:{filepath}");
答案 0 :(得分:1)
我不确定您是否可以使用此方法直接在另一个应用程序中打开文件。相反,我认为您需要使用UIDocumentInteractionController
打开一个弹出窗口,允许用户选择要打开PDF的应用程序。因此,请尝试以下操作:
NSUrl adobeUrl = new NSUrl($"com.adobe.adobe-reader:");
NSUrl fileUrl = NSUrl.FromFilename(filePath);
UIDocumentInteractionController docController = UIDocumentInteractionController.FromUrl(fileUrl);
if (UIApplication.SharedApplication.CanOpenUrl(adobeUrl))
{
docController.PresentOpenInMenu(this.View.Frame, this.View, true);
}
else
{
// throw error
}
此外,您需要将Adobe Reader URL方案添加到Info.plist。在文本编辑器中打开Info.plist并输入以下内容:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>com.adobe.adobe-reader</string>
</array>
在最后一个标记之前,例如
<plist version="1.0">
<dict>
...
<key>LSApplicationQueriesSchemes</key>
<array>
<string>com.adobe.adobe-reader</string>
</array>
</dict>
</plist>
否则,您将无法通过CanOpenUrl
测试,因此没有发生任何事情……尽管如果您查看了Application输出,iOS确实发送了一条消息,您需要执行此操作,例如:
-canOpenURL: failed for URL: "com.adobe.adobe-reader:" - error: "This app is not allowed to query for scheme com.adobe.adobe-reader"
我相信,要使var url = new NSUrl($"com.adobe.adobe-reader://{filepath}");
之类的东西能够正常工作,该文件实际上实际上已经在Adobe Acrobat的文件容器中。有关更多信息,请参见此SO帖子:https://stackoverflow.com/a/21913788/2913599 [注意:即使Adobe Acrobat的文件中已有pdf,我也无法使用此方法]