WebView doesn't show the PDF content sometimes using URL

49 Views Asked by At

I want to show PDF in a webView . I have a the URL of that PDF . It works at sometimes and shows the PDF but in sometimes doesn't show the PDF when I click on different URL in my RecyclerView . I searched for this Problem and I tries to use postDelayed but it still doesn't show the PDF at sometimes

Here is the Code

 final Dialog g = new Dialog(context);
                    //, android.R.style.Theme_Translucent_NoTitleBar
                    g.requestWindowFeature(Window.FEATURE_NO_TITLE);

                    g.setContentView(R.layout.webview_layout);

                    Window window = g.getWindow();
                    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
                    lp.copyFrom(g.getWindow().getAttributes());
                    Rect displayRectangle = new Rect();

                    window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);

                    lp.width = WindowManager.LayoutParams.MATCH_PARENT;
                    lp.height = WindowManager.LayoutParams.MATCH_PARENT;
                    lp.gravity = Gravity.CENTER_VERTICAL;

                    window.setAttributes(lp);

                    WebView webView = (WebView) g.findViewById(R.id.webView);
                   // WebSettings ws = webView.getSettings();
                    webView.getSettings().setJavaScriptEnabled(true);
                   // webView.getSettings().setPluginState(WebSettings.PluginState.ON);
                webView.getSettings().setBuiltInZoomControls(true);
                webView.getSettings().setSupportZoom(true);
                    webView.getSettings().setLoadWithOverviewMode(true);
                    webView.getSettings().setUseWideViewPort(true);
                webView.setWebViewClient(new Callback());
                webView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        webView.loadUrl( "http://docs.google.com/gview?embedded=true&url=" +list.get(position).getURl());

                    }
                },1000);
                g.show();

And the WebView Client

 private class Callback extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(
                WebView view, String url) {
            return(false);
        }

        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
      //      super.onReceivedSslError(view, handler, error);
            handler.proceed();
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            Log.e("webView"," "+"end");
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            Log.e("webView"," "+"start");
            return super.shouldOverrideUrlLoading(view, request);

        }
    }
0

There are 0 best solutions below