我有一个基于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根本不知道如何使用此类对象。
在这里,我已经做完了,但是没有用:
我尝试使用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文件?