首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带filepath的xamarin ios开放杂技阅读器

带filepath的xamarin ios开放杂技阅读器
EN

Stack Overflow用户
提问于 2018-12-10 09:20:55
回答 1查看 385关注 0票数 0

此代码打开acrobat读取器

代码语言:javascript
运行
复制
var url = new NSUrl($"com.adobe.adobe-reader://");
UIApplication.SharedApplication.OpenUrl(url);

我试图给出文件路径,但是我得到了错误。

代码语言:javascript
运行
复制
var url = new NSUrl($"com.adobe.adobe-reader://{filepath}");

var url = new NSUrl($"com.adobe.adobe-reader:{filepath}");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 02:39:28

我不确定你是否可以用这个方法直接在另一个应用程序中打开一个文件。相反,我认为您需要使用UIDocumentInteractionController打开一个弹出式窗口,允许用户选择应用程序来打开PDF。所以试试这个:

代码语言:javascript
运行
复制
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并放置以下内容:

代码语言:javascript
运行
复制
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>com.adobe.adobe-reader</string>
    </array>

就在最后一个标签之前。

代码语言:javascript
运行
复制
<plist version="1.0">
<dict>
    ...
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>com.adobe.adobe-reader</string>
    </array>
</dict>
</plist>

没有它,你会通过CanOpenUrl测试,所以这就是为什么什么都没发生.尽管您已经查看了应用程序输出,但iOS确实发送了一条消息,表示您需要这样做,例如:

代码语言:javascript
运行
复制
-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,我也无法让这个方法工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53702626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档