在Android webview中查看google文档中的pdf时“无法预览”

时间:2017-12-19 06:58:54

标签: android webview google-docs

在android中使用google doc链接在webview中打开pdf: -

webView.loadUrl("http://docs.google.com/gview&embedded=true&url=" + getIntent().getStringExtra(CONSTANT.pdfurl));

对于某些pdf

"no preview availbale"

发生在webview中 ,对于一些pdf它总是发生,我知道这个问题已被多次询问,并已看到所有stackoverflow和互联网,但无法找到任何令人满意的解释。

如何知道在谷歌文档中查看pdf时“无预览可用”以及如何解决此问题,

  

进度条自动停止,不显示任何内容   有时

这是我的完整执行代码: -

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);

progressBar.setVisibility(View.VISIBLE);

webView.loadUrl("http://docs.google.com/gview&embedded=true&url=" + getIntent().getStringExtra(CONSTANT.pdfurl));

webView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {

                super.onPageStarted(view, url, favicon);
                progressBar.setVisibility(View.VISIBLE);

            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return false;
            }
            @Override
            public void onPageFinished(WebView view, String url) {
                // do your stuff here
                progressBar.setVisibility(View.GONE);
                webView.setVisibility(View.VISIBLE);
            }

            @Override
            public void onReceivedError(WebView view, int errorCode,
                                        String description, String failingUrl) {
                view.loadUrl("about:blank");
                Toast.makeText(getApplicationContext(), "Error occured, please check newtwork connectivity", Toast.LENGTH_SHORT).show();
                super.onReceivedError(view, errorCode, description, failingUrl);
            }

   });

我确定知道的一件事是,在http网站上它比https网站更频繁地发生。如何解决这个问题?

有没有办法在不更改网站的情况下将网址从http转换为https?

2 个答案:

答案 0 :(得分:2)

检查你的pdf路径可能会像(https://docs.google.com/gview?embedded=true&url=null

一样无效

或者使用意图打开pdf我发现很容易

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pdf_url));
startActivity(browserIntent);

答案 1 :(得分:0)

出现的原因之一,

  

“无可用预览”

在WebView中加载PDF时

是Google Doc对每个请求所施加的带宽限制。

  

根据他们的文档,为了帮助确保我们的系统正常运行并确保您的帐户安全,所有Google Apps帐户均分配了有限的带宽。

要了解更多信息,请查看以下链接,

1. https://support.google.com/a/answer/1071518?hl=en
2. Reaching the bandwidth limit for viewing pdf files in WebView through Google docs