首先我要下载所有文件。所以我使用setDownloadListener
函数,它可以工作!
此外,我想要webview处理页面导航(在WebView中打开内部链接)...但如果它是文件则不是!
例如,如果网址是' www.example.com'它在WebView中打开但是 如果网址是' www.example.com/file.mp4'它与外部应用程序打开! (我宁愿用默认的Android媒体播放器打开它!)
也适用于' www.example.com/file.jpg'我宁愿打开内置的android图像查看器!
所以我尝试编码:
webView.setWebChromeClient(new WebChromeClient());
webView.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
// handle download, here we use brower to download, also you can try other approach.
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains(".mp4") || url.contains(".jpg")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
else if (Uri.parse(url).getHost().equals("www.example.com")) {
// This is my web site, so do not override; let my WebView load the page
return false;
}
// Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
});
webView.loadUrl("http://www.example.com");
当我点击图片或视频链接时,我有两个选择:
1-使用外部浏览器打开 2-用webview打开(我的应用程序)
所以我有两个问题:
1-一定不能建议我"打开webview(我的应用程序)" ...它必须只建议我外部应用程序......所以我该怎么做?
2-我想要开放本机内置图像查看器(用于mp4链接)和android中的视频播放器(用于jpg链接)....而不是外部浏览器!
请帮我纠正我的代码... 至少解决第一个问题!