80,359
社区成员
发帖
与我相关
我的任务
分享
WebView webView = (WebView) findViewById(R.id.my_webview);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
webView.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
//在这里进行下载的处理。
// 如果你没有进行处理,一般APP就不会开始下载行为,在这里可以自己开启一个线程来下载
Log.i("download","url"+url);
Log.i("download","contentDisposition"+contentDisposition);
Log.i("download","mimetype"+mimetype);
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.baidu.com");
以百度为例,打开百度首页会看到下面有个立即下载,点击一下下载APP,会看到如下的log
3:44:38.499 20792-20792/com.facebook.samples.demo I/chromium: [INFO:CONSOLE(0)] "Mixed Content: The page at 'https://m.baidu.com/?from=844b&vit=fps' was loaded over HTTPS, but requested an insecure resource 'baiduboxapp://utils?action=sendIntent&minver=6.9.1¶ms=%7B%22intent%22%3A%22%23Intent%3Bpackage%3Dcom.baidu.searchbox%3Baction%3Dcom.baidu.searchbox.action.SEARCH%3Bcategory%3Dandroid.intent.category.DEFAULT%3BS.key_value%3D%E7%BB%BC%E8%89%BA%3Bend%22%7D&needlog=1&logargs=%7B%22source%22%3A%22invokeBdBox_baiduBoxWiseBanner%2C32C762D5EA6819EB06F9F8426D4DD336%2Candroid_6%2Corigin%22%7D'. This content should also be served over HTTPS.", source: https://m.baidu.com/?from=844b&vit=fps (0)
11-16 13:44:38.576 20792-20792/com.facebook.samples.demo W/cr.BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 20792
11-16 13:44:49.931 20792-20792/com.facebook.samples.demo I/download: urlhttp://downapp.baidu.com/baidusearch/AndroidPhone/8.0.0.16/1/1010750s/20160928140142/baidusearch_AndroidPhone_8-0-0-16_1010750s.apk?responseContentDisposition=attachment%3Bfilename%3D%22baidusearch_AndroidPhone_1010750s.apk%22&responseContentType=application%2Fvnd.android.package-archive&request_id=1479275090_3764879851&type=static
11-16 13:44:49.932 20792-20792/com.facebook.samples.demo I/download: contentDispositionattachment;filename="baidusearch_AndroidPhone_1010750s.apk"
11-16 13:44:49.932 20792-20792/com.facebook.samples.demo I/download: mimetypeapplication/vnd.android.package-archive
11-16 13:44:49.940 20792-20792/com.facebook.samples.demo W/cr.BindingManager: Cannot call determinedVisibility() - never saw a connection for the pid: 20792
OK ,符合预定要求,想怎么下载都在那个回调监听里进行处理吧