此代码打开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}");
发布于 2018-12-11 02:39:28
我不确定你是否可以用这个方法直接在另一个应用程序中打开一个文件。相反,我认为您需要使用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方案添加到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
测试,所以这就是为什么什么都没发生.尽管您已经查看了应用程序输出,但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}");
这样的东西工作,文件实际上已经需要在Acrobat的文件容器中了。请参阅此文章以获取更多信息:https://stackoverflow.com/a/21913788/2913599注意:即使在Acrobat的文件中已经有了pdf,我也无法让这个方法工作。
https://stackoverflow.com/questions/53702626
复制相似问题