How to view or download any PDF file in WebView?
I tried to find some solutions to the problem. But there are only codes that download a specific file.
I have a website that opens in a webview. On the page there are several PDFs. I need a code that downloads or displays the files.
Follows the code I'm using for webview:
Public class Environmentaula extends Activity {
private WebView webViewAmbienteAula1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_ambiente_aula);
String url = "http://www.meusite.com";
WebView view = (WebView)
this.findViewById(R.id.webViewAmbienteAula);
view.setWebViewClient(new WebViewClient());
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl(url);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
WebView view = (WebView)
this.findViewById(R.id.webViewAmbienteAula);
if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()){
view.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
3
1 answers
Use a setDownloadListener.
mWebView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
Request request = new Request( Uri.parse(url));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "myPDFfile.pdf");
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
}
});
See here a nice implementation, I hope it helps you.
2
Author: Weslley, 2017-05-23 12:37:31