Android - 加载 PDF 文件而不下载或使用 google 文档?

Android - Load PDF file without downloading or using google docs?

是否有任何方法可以将 PDF 文件从服务器加载到 WebView,而无需将 PDF 下载到设备或使用 google 文档打开它?

我一直在四处寻找,但找不到任何解决方案。我也试过下面的代码 (Source):

package com.pdfwebview;

import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {
    WebView webview;
    ProgressDialog pDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        init();
        listener();
    }

    private void init() {
        webview = (WebView) findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);

        pDialog = new ProgressDialog(MainActivity.this);
        pDialog.setTitle("PDF");
        pDialog.setMessage("Loading...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(false);
        webview.loadUrl("https://drive.google.com/file/d/0B534aayZ5j7Yc3RhcnRlcl9maWxl/view");
    }

        private void listener() {
            webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                pDialog.show();
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                pDialog.dismiss();
            }
        });
    }
 }

但是当将 loadUrl link 更改为我的 PDF 文件目标时,该文件也没有显示。

要求API为15岁及以上

您可以使用 MuPDF,但它会打开另一个 activity 来显示 pdf 文件。它具有非常好的性能,是在 Android.

中显示 pdf 文件的最有效方式。

如果你想在 webview 中查看 pdf,那么你可以使用类似 viewerjs 的东西。

我在使用 AndroidPdfViewer 开发的一些应用程序中看到了不错的结果。它会为您的最终 APK 添加一些 MB,但相信我,这是值得的。它几乎可以渲染任何 pdf 文件并且具有出色的性能。您必须将 PDF 下载到设备,但之后可以将其删除。

这是目前最好的方式,并且与旧 android 版本最兼容,无需离开应用程序即可加载 pdf 文件。

您可以阅读 here 所有当前可用解决方案的优缺点,以及 AndroidPdfViewer 如何成为其中的王者 :D