首先,写在开头,如果有产品要求h5点击按钮实现保存的,那么如果要兼容微信浏览器的 可以提出改需求了。
参考:https://zhuanlan.zhihu.com/p/260941705
项目技术栈:uni-app
查了各论坛和uni-app的api、微信的sdk 发现很多都
实现:
save(picUrl) {
var a = document.createElement("a"); //创建a 标签
a.href = picUrl; // 把图片路径赋到a标签的href上
a.download = picUrl.replace(/(.*\/)*([^.]+.*)/gi, "$2").split("?")[0]; // 图片文件名
// 创建鼠标事件并初始化
var e = new MouseEvent("click", (true, false, window));
// 执行保存到本地
a.dispatchEvent(e);
},
上面这个方法不兼容QQ浏览器、微信浏览器
除了由于a.download兼容性的问题
还有个原因是因为 保存图片需要系统相册的权限,需要app去获取,h5没有权限去获取,所以在h5中,没有和微信通信去调用app本身保存图片的能力,那么无法实现点击保存图片。
所以在H5中 想要实现保存图片 只能提示用户 长按保存。