【问题标题】:How to load the online pdf files in Xamarin webview?如何在 Xamarin webview 中加载在线 pdf 文件?
【发布时间】:2019-11-21 19:53:44
【问题描述】:

我试图在 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))));

【问题讨论】:

  • 我看到的Sharepoint链接实际上并不是文件本身,而是Sharepoint的web wrapper。尝试加载 orimi.com/pdf-test.pdfw3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf 之类的内容来确认问题所在。
  • 嗨@SushiHangover,我已经检查了您提供的pdf链接,该链接也没有加载。如果我做错了什么,请在上面的代码中纠正我。
  • @SushiHangover 我遇到了同样的问题。有没有办法绕过 Sharepoint 的网络包装器?我可以毫无问题地加载 .pdf 链接,但 Sharepoint 的 pdf 共享链接会在网络包装视图中显示文件,因此无法像往常一样加载
  • @12dollar 我个人不知道如何绕过包装器(它提供安全、共享和其他功能)。您可以通过 Essentials 等将包装器加载到 WebView 或应用程序嵌入式浏览器(即 Chrome CustomTabs)中......
  • @SushiHangover 谢谢我会尝试一些东西,如果我找到了一个可用的解决方案,我会在这里报告。

标签: xamarin sharepoint webview xamarin.android androidpdfviewer


【解决方案1】:

如果 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 提供的网址,它在我这边运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 2020-03-10
    相关资源
    最近更新 更多