2011-09-15 558 views
55

有没有办法让股票Android浏览器自动打开PDF,Word或其他典型文件,而无需经过下载文件的过程然后让用户从下载应用程序或通知栏打开文件?如何通过Android网页浏览器显示PDF而无需首先“下载”

我们有一个Web应用程序,它有很多我们想要包含的文档,而不必转换为HTML,但是让用户下载文件并手动打开它并不容易培训用户。

在iOS上,这些文件都在浏览器中内联显示。我想要一种方法让浏览器自动将文件启动到Acrobat Reader或QuickOffice或用户必须显示的任何程序中。

有没有人知道一种方法来做到这一点?我知道Google文档有一些PDF查看支持,但使用我们的网络应用程序的用户可能在所有情况下都没有公共互联网访问权限,并且可能会触及本地网络服务器。

+1

我从来没有见过它的工作方式。话虽如此,我想你可以创建自己的浏览器,能够解码和正确显示PDF文件。我只是不相信任何流行的浏览器都支持这一点。 – FoamyGuy

+0

您的PDF文件是否针对“快速Web查看”进行了优化?如果不是,则下载仍在进行中时无法显示 - 因此只能下载并显示。 – Robert

回答

2

不幸的是,Android设备上的本地浏览器不支持这种类型的文件。让我们看看在4.0中我们能否做到这一点。

-1
  • 下载Acrobat Reader的.apk文件的Android来显示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); 
    
+2

这是一个网页浏览器,不是原生的android应用程序。 -1 – RyanDawkins

39

的片段上您的PDF文件您可以在Google文档查看器中通过附加URL来打开PDF:

http://docs.google.com/gview?embedded=true&url=<url of a supported doc> 

这将在默认浏览器或WebView中打开PDF。

给出了支持的格式列表here

+4

这非常有帮助,谢谢。我不确定它是否是100%必需的,但可能值得一提的是,支持的文档的应该被urlencoded。 – mason81

+1

这对我不起作用......它只是显示一个页面“糟糕!预览此文档时出现问题”,并显示一个下载按钮。点击下载按钮时没有任何反应。 –

+11

上述链接无法在Android上使用Chrome,我切换到了https://drive.google.com/viewerng/viewer?embedded = true&url = ####',而且完成了这项工作! – QFDev

3

我需要这个也和上面的链接停止工作,所以这是我发现了新的谷歌驱动器的工作:

谷歌已经创建中的GDrive的链接,PDF不是一个服务: https://docs.google.com/viewer 只需添加您的URL,它创建了一个链接,IFrame的代码 (仔细看,你会看到的模式,建立一个没有这个Web服务链接)

此外,还有一种方法可以做到这一点对PDF的存储在谷歌驱动器: https://docs.google.com/viewer?srcid=YOUR_GDRIVE_PDF_DOC_ID_HERE&pid=explorer&efh=false&a=v&chrome=false&embedded=true (这可以是链接或src URL o f iframe)

我已经在Android上测试过,它很好地调出了PDF查看器。

+0

对我而言,如果我目前没有使用Google帐户登录,那么它会将我带到登录页面。有没有办法绕过这个,只看PDF? –

+0

链接https://docs.google.com/viewer中断 – ejectamenta

+0

尝试使用http://viewerjs.org/ viewer.js文件看起来很有前途,因为它是独立于浏览器的,并依靠您的服务器来完成繁重的工作。 – user1493559

3

具体来说,要安装firefox的pdf.js插件,请不要使用应用商店。相反,从mozilla内部进入addons.mozilla.org并从那里安装它。此外,要查看它是否安装正确,请转至菜单工具:附加组件(而不是您可能认为的桌面版本中的“about:plugins”url)。

(新帐户,否则我会把这个作为上述回答评论)

0

您可以使用此

webView.loadUrl("https://docs.google.com/viewer?url=" + "url of pdf file"); 
+0

任何人都可以提及downvoting的原因。 –

+0

也许,你的答案适用于某些编程技术,答案可能只是URL,即使我可以将它添加到上面已经提到的锚标记中 –

0
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)"); 
0
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); 
相关问题