Xamarin.Forms打开直接下载pdf

时间:2019-10-16 16:13:23

标签: xamarin xamarin.forms xamarin.android xamarin.ios

我能够将pdf文件本地保存在手机的“下载”文件夹中。现在,我希望能够在通用pdf查看器中打开文件。例如,这是我的文件:

enter image description here

直接从下载文件夹中打开时,出现以下视图:

enter image description here

下载文档后,如何在同一查看器中打开文档?

我尝试过:

    Device.OpenUri(new System.Uri("file:///storage/emulated/0/Download/740067_Invoice_Food.pdf"));

但是什么也没发生。

2 个答案:

答案 0 :(得分:1)

尝试这种方法,也许您需要使用Environment.SpecialFolder更改文件夹路径

var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            var filename = Path.Combine(documents, "MyPDF.pdf");
            Device.OpenUri(new Uri(filename));

答案 1 :(得分:1)

首先将fileprovider指定为android清单文件

类似这样的东西

 <application android:label="The name of your project" android:supportsRtl="true" android:icon="@drawable/register">
  <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"></meta-data>
  </provider>
 </application>

接下来,将provider_paths.xml文件添加到xml文件夹中

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="."/>
</paths>

现在您应该通过“ DependencyService”为每个平台调用本机方法以打开pdf文件

按照此伟大文档进行操作

https://officialdoniald.azurewebsites.net/2019/09/24/xamarin-forms-save-and-open-pdf-file/