在Android WebView中开启长按动作下载图片,可以通过以下步骤实现:
<uses-permission android:name="android.permission.INTERNET" />
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
WebView webView = findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".jpg") || url.endsWith(".png") || url.endsWith(".gif")) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "image.jpg");
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
downloadManager.enqueue(request);
return true;
}
return false;
}
});
在上述代码中,我们判断URL是否以.jpg、.png或.gif结尾,如果是,则创建一个DownloadManager.Request对象,并设置下载通知的可见性以及下载文件的保存路径。然后,通过DownloadManager.enqueue方法将下载请求加入下载队列。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
完成上述步骤后,当用户在WebView中长按图片时,会触发shouldOverrideUrlLoading方法,判断URL是否为图片格式,如果是,则会自动下载该图片到设备的下载目录中。
领取专属 10元无门槛券
手把手带您无忧上云