使用谷歌文档在webview中显示pdf文件(存储在谷歌驱动器中)

时间:2016-08-30 07:07:17

标签: android pdf webview google-drive-api google-docs

我的pdf文件存储在某个网站中:http://www.pdf995.com/samples/pdf.pdf

现在我不能依赖其他网站来购买我的应用。所以

  1. 我已下载pdf doc
  2. 在谷歌驱动器上传
  3. 获得了我自己的pdf链接
  4. 尝试使用google docs {/ 1>在webview中打开它
  5. FAILED
  6. 现在链接如下

    结果,

    • 其他网站可能随时更改其网址。不能依赖它。

    • 如果我单独使用google云端硬盘链接,则会在不在应用内的网络浏览器中打开。

    • 如果在谷歌文档之前,则不会生成pdf文档。我得到这样的东西。

    enter image description here

    应该怎样做以便我可以使用谷歌驱动器中自己的pdf在webview中打开

    我已经关注CommonsWareStuart SieglerSamir Mangroliya但没有任何作用。 :(

5 个答案:

答案 0 :(得分:3)

即使不将其下载到设备,您也可以使用Google文档查看互联网上的任何pdf。以下是如何操作的示例:

webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);

其中pdf是指向PDF文件的字符串链接。所以在你的情况下它将是:

String pdf = "http://www.pdf995.com/samples/pdf.pdf";
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);

答案 1 :(得分:0)

我有一个WebView,并且存储在google drive中的我的pdf链接是:

String myPdfUrl = "https://drive.google.com/file/d/1fQfqgEmz-AiCpdHEIh7SNwdnAkQFqDQp/view";

不要忘记“/ view”。

我的java代码显示:

private void displayWebView() {
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            view.loadUrl(myPdfUrl);
            return true;
        }
    });
    webView.loadUrl(myPdfUrl);
}

并在@SuppressLint("SetJavaScriptEnabled")

之上添加onCreate()
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.act

答案 2 :(得分:0)

将网址定义为:

String BASE_URL = "https://drive.google.com/viewerng/viewer?embedded=true&url=https://drive.google.com/uc?id=";
String PDF_ID = "<Your pdf id from Google drive share link>";

加载到WebView

webview.loadUrl(BASE_URL + PDF_ID);

答案 3 :(得分:0)

首先,您需要遵循“PhúcNghiLâm”提供的答案。 (第三个答案。)

如果它不起作用......

在我的情况下,会有HTML结果。但是您的WebView的大小是0宽度和0高度。

因此,您需要通过实现“ onPageFinished”来重置LayoutParam。还是其他的东西。

(您应该能够获取WebView的父视图。所以。1.获取父视图的大小。2.将大小数据设置为新的LayoutParam。3.将新的LayoutParam设置为WebView。)

答案 4 :(得分:-1)

我遇到了同样的问题,经过大量的打击和试验,我找到了出路。

您需要点击google drive的下载按钮。

单击它后,将打开一个新标签,其中包含此类型的其他网址

https://drive.google.com/uc?id=0B1dndMpNP4zgdlTuMm5rcjFk3TQ&export=download // test url //

String url="https://drive.google.com/uc?id=0B1dndMpNP4zgdlTuMm5rcjFk3TQ&export=download";
webView = (WebView) findViewById(R.id.progr);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url="+url);