0

我试图在 Xamarin 表单 Webview 中加载和显示在线 pdf 文件(来自 sharepoint 链接的文件)。为了加载 pdf,我使用自定义渲染器实现了 pdf 查看器。但是,没有加载文件。你能帮我解决这个问题吗?

以下代码用于加载文件。

   var customWebView = Element as AuthWebView;
                Control.Settings.AllowUniversalAccessFromFileURLs = true;
                Control.Settings.PluginsEnabled = true;
                Control.Settings.JavaScriptEnabled = true;
                //  Control.LoadUrl("https://drive.google.com/viewerng/viewer?embedded=true&url=" + customWebView.Uri); tired this also but no luck
                Control.LoadUrl(string.Format("file:///android_asset/pdfjs/web/viewer.html?file={0}", string.Format("file:///android_asset/Content/{0}", WebUtility.UrlEncode(customWebView.Uri))));
4

1 回答 1

0

如果url包含前缀https,则应在 Android 项目中添加以下代码。因为在 Android 9(API 级别 28)之后,默认禁用明文支持。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>

既然你想加载远程pdf,你只需要直接加载url。file:///android_asset/pdfjs/web/viewer.html适用于本地 pdf 。

Control.LoadUrl(string.Format("https://drive.google.com/viewerng/viewer?url={0}", "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"));

我使用了@SushiHangover提供的网址,它在我这边运行良好。

于 2019-11-21T11:53:44.623 回答