I have a URL for my PDF and I want to show it in browser . I was using Intent
but the PDF was download not Viewed , so I searched for this thing and I fount that , I can use this link before my PDF's URL "https://drive.google.com/viewerng/viewer?embedded=true&url="
.
It was working but yesterday it's not working and it shows Couldn't preview file there was a problem showing this image
I searched for this thing also and I found something like it is a bug in Google drive .
Is there any simple way to show a PDF with its URL in browser without downloading it ?
here is my code
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);
}
}
});