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);
}
}