[Android]记录一下整理的使用pdfjs本地查看pdf的方法

感谢:https://blog.csdn.net/j236027367/article/details/78851248

上面的那篇博客已经详细地介绍了如何完整地加入这个功能,甚至还加入了双指缩放!就很厉害。

下面我记录的将会是我以后直接使用的方法:

①创建一个assets的文件夹,并将pdfjs解压到该文件夹下;

    链接:https://pan.baidu.com/s/14qyy6uQIga64uvzmOUptyQ 
    提取码:tzq0

②加入一个webview,并对webview做好配置。

    private void initView() {
        WebSettings settings = webView.getSettings();
        settings.setSavePassword(false);
        settings.setJavaScriptEnabled(true);
        settings.setAllowFileAccessFromFileURLs(true);
        settings.setAllowUniversalAccessFromFileURLs(true);
        settings.setBuiltInZoomControls(true);
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        webView.setWebChromeClient(new WebChromeClient());
    }

③最后就是显示操作了,这里使用一个本地的test.pdf文件。

    private void showWeb() {
        File file = new File(Environment.getExternalStorageDirectory() + "/Monitor/" + "test.pdf");
        if (file.exists()) {
            LogUtils.d("文件的路径是:" + file.getAbsolutePath() + ",文件大小是:" + file.length());

            Uri uri = FileProvider.getUriForFile(this, "包名.fileprovider", file);
            String url = "file:///android_asset/pdfjs/web/viewer.html?file=" + uri;
            LogUtils.d("加载的文件url是:" + url);
            webView.loadUrl(url);
        }
    }

④加入一个释放webview的方法,避免webview在destroy的时候因zoomControls导致窗体泄露而闪退。

    private void releaseWebView() {
        if (webView != null) {
            webView.setVisibility(View.GONE);
            webView.removeAllViews();
            conditionWeb.removeView(webView);
            conditionWeb.removeAllViews();
            webView.destroy();
        }
    }

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值