使用 Web 视图显示带有 URL 的 PDF

问题描述

我有我的 PDF 的 URL,我想在浏览器中显示它。我使用的是 Intent,但下载的 PDF 没有查看,所以我搜索了这个东西,我发现,我可以在我的 PDF 的 URL "https://drive.google.com/viewerng/viewer?embedded=true&url=" 之前使用这个链接

它可以工作,但昨天它不工作,它显示 Couldn't preview file there was a problem showing this image 我也搜索了这个东西,我发现它是谷歌驱动器中的一个错误。 有没有什么简单的方法可以在浏览器中显示带有 URL 的 PDF 而不下载它?

这是我的代码

  Dialog dialog = new Dialog(requireActivity(),android.R.style.Theme_Translucent_NoTitleBar);
                                dialog.requestwindowFeature(Window.FEATURE_NO_TITLE);
                                dialog.getwindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

                                dialog.setContentView(R.layout.webview_layout);
                                WebView webView = dialog.findViewById(R.id.webview);
                                ProgressBar progressBar = dialog.findViewById(R.id.pp);
                                dialog.show();

                                String path = caseSummaryModelResource.data.getURLWithParamter();

                                webView.getSettings().setLoadWithOverviewmode(true);
                                webView.getSettings().setJavaScriptEnabled(true);
                                webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE,null);
                                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                                    webView.setRendererPriorityPolicy(WebView.RENDERER_PRIORITY_IMPORTANT,false);
                                }

                                String url = "https://drive.google.com/viewerng/viewer?embedded=true&url=" + path;
                                webView.loadUrl(url);
                                //webView.setWebChromeClient(new WebChromeClient());
                                //webView.setWebViewClient(new WebViewClient());
                                webView.setWebViewClient(new WebViewClient() {
                                    @Override
                                    public boolean shouldOverrideUrlLoading(WebView view,String url) {
                                        view.loadUrl(url);
                                        return true;
                                    }

                                    public void onReceivedError(WebView view,int errorCode,String description,String failingUrl) {
                                        Toast.makeText(requireActivity(),description,Toast.LENGTH_SHORT).show();
                                    }

                                    @Override
                                    public void onPageFinished(WebView view,String url) {
                                        //super.onPageFinished(view,url);
                                        if (view.getTitle().equals("")) {
                                            view.reload();
                                        }
                                    }
                                });
                                webView.setWebChromeClient(new WebChromeClient() {
                                    public void onProgressChanged(WebView view,int progress) {
                                        if (progress < 100) {
                                            progressBar.setVisibility(View.VISIBLE);
                                        }
                                        if (progress == 100) {
                                            progressBar.setVisibility(View.GONE);
                                        }
                                    }
                                });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)