如何通过Android网页浏览器显示PDF,而不先“下载”
有没有办法让股票Android浏览器自动打开PDF,Word或其他典型的文件,而无需经过下载文件的过程,然后让用户从下载应用程序或通知栏中打开文件?
我们有一个Web应用程序,它有很多我们想要包含的文档,而不必转换为HTML,但是让用户下载文件并手动打开它并不容易培训用户。
在iOS上,这些文件全部在浏览器中内联显示。 我想要一个方法让浏览器自动启动文件到Acrobat Reader或QuickOffice或任何程序,用户必须显示它们。
有没有人知道一个办法呢? 我知道Google文档有一些PDF查看支持,但是使用我们的networking应用程序的用户在所有情况下都可能没有公共Internet访问权限,并且可能正在本地networking服务器上。
您可以在Google文档查看器中打开PDF,方法是将URL附加到:
http://docs.google.com/gview?embedded=true&url=<url of a supported doc>
这将在默认浏览器或WebView中打开PDF。
这里列出了支持的格式。
您可以在2017年4月6日使用此格式。
https://docs.google.com/viewerng/viewer?url=http://yourfile.pdf
只要用你使用的链接replacehttp://yourfile.pdf即可 。
具体来说,要安装firefox的pdf.js插件,您不要使用app store。 相反,从mozilla中去addons.mozilla.org并从那里安装。 此外,要查看它是否正确安装,请转到菜单工具:附加组件(而不是像您可能认为的桌面版本的“about:plugins”url)。
(新的帐户,否则我会把这个作为对上述答案的评论)
不幸的是,Android设备上的本地浏览器不支持这种types的文件。 让我们来看看在4.0中我们是否能够做到这一点。
我也需要这个,上面的链接停止工作,所以这是我发现与新的谷歌驱动器工作:
Google有一项服务,可以在PDF中创build不在GDrive中的链接: https : //docs.google.com/viewer只需添加您的url,即可创build链接和IFrame代码(仔细查看,您将看到该模式并创build链接没有这个networking服务)
另外,还有一种方法可以用于存储在Google云端硬盘中的PDF: https : //docs.google.com/viewer?srcid = YOUR_GDRIVE_PDF_DOC_ID_HERE&pid=explorer&efh=false& a =v&chrome=false&embedded=true (可以是链接或src iframe的URL)
我已经在Android上进行了testing,它很好地调用了PDF查看器。
你可以使用这个
webView.loadUrl("https://docs.google.com/viewer?url=" + "url of pdf file");
Try this, worked for me. WebView view = (WebView) findViewById(R.id.yourWebView); view.getSettings().setJavaScriptEnabled(true); view.getSettings().setPluginState(WebSettings.PluginState.ON); view.loadUrl("http://docs.google.com/gview?embedded=true&url=" +"your document link(pdf,doc,docx...etc)");
String format = "https://drive.google.com/viewerng/viewer?embedded=true&url=%s"; String fullPath = String.format(Locale.ENGLISH, format, "PDF_URL_HERE"); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(fullPath)); startActivity(browserIntent);
- 下载适用于android的acrobat reader .apk文件来显示pdf文件
- 把你的PDF文件放在SD卡上
-
使用下面的代码片段
File file= new File("/sdcard/test.pdf"); Uri path=Uri.fromFile(file); Intent i =new Intent(Intent.ACTION_VIEW); i.setDataAndType(path,"application/pdf"); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i);