Android 保存WebView中的图片示例
作者:人言落日是天涯 时间:2021-10-05 21:57:05
前言
项目中有需求在APP的Webview中长按图片可以保存。后来就去研究一下该怎么实现,顺便整理了一下。
WebView基本配置
mWvContent.getSettings().setJavaScriptEnabled(true);
mWvContent.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWvContent.getSettings().setDomStorageEnabled(false);
mWvContent.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
// 自适应屏幕
mWvContent.getSettings().setUseWideViewPort(true);
mWvContent.getSettings().setLoadWithOverviewMode(true);
注册ContextMenu
registerForContextMenu(mWvContent);
重写下面的方法即可保存图片
@Override
public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {
super.onCreateContextMenu(contextMenu, view, contextMenuInfo);
final WebView.HitTestResult webViewHitTestResult = mWvContent.getHitTestResult();
if (webViewHitTestResult.getType() == WebView.HitTestResult.IMAGE_TYPE ||
webViewHitTestResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
contextMenu.setHeaderTitle("网页中下载图片");
contextMenu.add(0, 1, 0, "点击保存")
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
String DownloadImageURL = webViewHitTestResult.getExtra();
if (URLUtil.isValidUrl(DownloadImageURL)) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(DownloadImageURL));
request.allowScanningByMediaScanner();
//设置图片的保存路径
request.setDestinationInExternalFilesDir(WebViewActivity.this, "/img", "/a.png");
DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
downloadManager.enqueue(request);
Toast.makeText(WebViewActivity.this, "下载成功", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(WebViewActivity.this, "下载失败", Toast.LENGTH_LONG).show();
}
return false;
}
});
}
}
需要添加相关权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
这样就可以实现在Webview中长按图片点击下载功能了。
来源:https://www.jianshu.com/p/de2990e73cc6
标签:Android,WebView,图片
0
投稿
猜你喜欢
Android特效之水波纹的实现
2022-04-30 22:55:09
Android开机画面的具体修改方法
2023-05-13 20:52:22
c# 获取字符串的字节数的方法
2022-01-17 13:52:50
Flutter开发Mac桌面应用实现自动提取生成视频字幕文件
2023-05-11 05:25:58
ES结合java代码聚合查询详细示例
2022-08-31 01:23:29
一文带你吃透JSP增删改查实战案例详细解读
2021-08-17 17:10:22
SpringBoot整合阿里 Druid 数据源的实例详解
2021-07-28 17:50:32
IntelliJ IDEA 2021.1 推出语音、视频功能,边写代码边聊天(功能超级强大)
2023-09-13 23:30:37
java中Struts2文件上传问题详解
2023-12-16 10:27:54
Java简单工厂模式详细解释
2021-09-20 16:12:07
android Tween Animation属性设置方法实例
2022-07-12 22:25:19
java_object的简单使用详解
2023-08-22 11:35:57
C#利用性能计数器监控网络状态
2022-01-05 00:13:53
微信支付仅能成功调用一次问题的解决方法(Android)
2021-07-27 10:40:17
Android自定义View之自定义评价打分控件RatingBar实现自定义星星大小和间距
2023-03-14 04:30:16
java 值Document解析xml详细介绍
2021-11-13 15:59:00
Java实现获取指定个数的不同随机数
2023-11-14 21:42:34
java基础之接口组成更新的实现
2022-10-03 08:10:27
android仿支付宝密码输入框效果
2021-08-06 12:14:01
C#集合查询Linq在项目中使用详解
2022-09-16 13:50:09