如何在WebView中显示嵌入式PDF文件?

时间:2018-11-26 18:32:50

标签: android pdf webview embed

我有一个基于WebView的简单Android客户端。 我的目标是显示或至少下载页面上的PDF文件。 问题在于这些PDF文件是嵌入的(在embed标签内),而WebView不会显示它们。嵌入式PDF的示例:

<embed class="my-class" type="application/pdf" src="data:application/pdf;base64,[base64string]">,其中[base64string]是PDF文件的base64表示形式。

但是,Chrome浏览器(以下表示Android版本)可以理解嵌入式PDF文件并提供打开它们的权限。据我所知,Chrome和WebView具有通用的代码库,所以我认为有可能在我的应用程序中实现相同的行为。

为了确保Webview嵌入PDF时出现问题,足以打开任何包含此类内容for example的网站。您很可能会在PDF文件的位置看到一个白色的空白框,上面带有(也许没有)Can't load plugin之类的文本。如果单击此框架,则不会发生任何事情。据我了解,WebView根本不知道如何使用此类对象。


Chrome example screenshot

WebView example screenshot


在这里,我已经做完了,但是没有用:

  • 我尝试使用WebView的不同设置进行操作:

    webV.settings.javaScriptEnabled = true
    webV.settings.allowFileAccess = true
    webV.settings.pluginState = WebSettings.PluginState.ON
    webV.settings.domStorageEnabled = true
    webV.settings.setAppCacheEnabled (true)
    webV.settings.javaScriptCanOpenWindowsAutomatically = true
    webV.settings.mediaPlaybackRequiresUserGesture = true
    webV.setLayerType (View.LAYER_TYPE_HARDWARE, null)
    
  • 我尝试使用WebChromeClient和WebViewClient方法拦截嵌入式文件下载,但未成功。嵌入资源不会加载,因此没有事件。还有错误。

  • 我尝试了Chrome自定义标签,他们了解嵌入式PDF,但不幸的是,它们不适合在我的项目中使用。

是否有可能通过WebView理解嵌入式pdf文件?

0 个答案:

没有答案