在webview中显示pdf不起作用

时间:2015-08-31 05:55:52

标签: android pdf webview

我在webview中显示带有Google文档的pdf。我正在使用Google云端硬盘中的网址。我尝试过Google云端硬盘这么多格式,但没有运气。 我的网址链接如下

https://drive.google.com/drive/u/0/folders/0Bxd-5Rffh6BufmNiYS16NFZKN2JmYzd3TjgtWmxLeEZ2SnlMa2l2RDhmYlNyTDgtUXZOdnM

My Activity class as foloows“

public class FormWebViewActivity extends CustomWindow {

int value;
static String POSITION_ID = "position";
// WebView webView;

ProgressBar progressBar_webview;

@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    try {

        WebView webView = new WebView(FormWebViewActivity.this);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setPluginState(PluginState.ON);

        String pdfURL = "https://drive.google.com/drive/u/0/folders/0Bxd-5Rffh6BufmNiYS16NFZKN2JmYzd3TjgtWmxLeEZ2SnlMa2l2RDhmYlNyTDgtUXZOdnM";
        // https://drive.google.com/file/d/0Bxd-5Rffh6BuSlhnTHJsMW5Hclk/view

        webView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageFinished(WebView view, String url) {

                super.onPageFinished(view, url);
                // progressBar_webview.setVisibility(View.GONE);
            }
            @Override
            public void onPageStarted(WebView view, String url,
                    Bitmap favicon) {

                super.onPageStarted(view, url, favicon);
                // progressBar_webview.setVisibility(View.VISIBLE);
            }
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // view.loadUrl(url);
                return false;
            }

        });

        webView.loadUrl("http://docs.google.com/gview?embedded=true&url="
                + pdfURL);
        setContentView(webView);

    } catch (RuntimeException e) {
        e.printStackTrace();
    }
    // WebView webView = new WebView(FormWebViewActivity.this);
}

}

但它只显示HTML代码,而不是实际的PDF视图。 我错误的Google云端硬盘网址了吗?或者无法通过Google云端硬盘展示。

任何免费的PDF文件托管服务也将受到赞赏。

2 个答案:

答案 0 :(得分:2)

除了@Derek Fung的回答,如果您的驱动器有登录会话,您可能还需要提供会话访问权限。

但是如果您仅使用视图网址,则不建议用户登录Google帐户。

只需你可以像这样使用::

 webView.loadUrl("https://docs.google.com/viewer?url="+ pdfURL);

答案 1 :(得分:1)

您尝试使用的链接需要身份验证,这意味着除非 webview 具有登录会话,否则您无法访问该内容。

您必须按照以下链接设置为Anyone with the linkPublic web access,请注意,该网址也是其他内容。

编辑:

忘记提供链接

https://support.google.com/drive/answer/2494886?hl=en