我试图以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))));
如果url包含前缀https
,则应在Android项目中添加以下代码。因为在Android 9(API级别28)之后,默认情况下会禁用明文支持。
<?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提供的url,它对我来说很好用。