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

问题描述 投票:5回答:2

使用google doc链接在android中的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?

android webview google-docs
2个回答
2
投票

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

或者使用意图打开pdf我觉得很容易

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

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

© www.soinside.com 2019 - 2024. All rights reserved.