0

我的 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);
                                        }
                                    }
                                });
4

0 回答 0