微信小程序保存图片(长按保存and点击保存)
一、长按图片保存
只需要image标签给上‘ show-menu-by-longpress=‘1’’属性,就可以实现长按保存功能及长按识别图片中小程序二维码,特别方便
<image src="1.png" show-menu-by-longpress='1'></image>
二、点击按钮保存图片至相册
如果调取用户授权访问相册,在用户拒绝后,安卓会出现无法再继续保存的问题,这边给出苹果和安卓都适用的方法,代码如下:
<button bindtap="savePoster"> 保存到相册</button >
savePoster() {const that = thislet fileName = new Date().valueOf();let filePath = wx.env.USER_DATA_PATH + '/' + fileName + '.jpg' //这边就是为了安卓做的兼容,因为安卓机有可能会将图片地址的后缀名读取为:unknowwx.downloadFile({url: that.data.imgUrl, //需要保存的图片地址filePath: filePath,success: function (res) {// 保存图片到系统相册wx.saveImageToPhotosAlbum({filePath: filePath,success(data) {let fileMgr = wx.getFileSystemManager()fileMgr.unlink({filePath: filePath,success() {wx.showToast({title: '已保存至您的相册',icon: 'none',duration: 1500});}})},fail(err) {if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err.errMsg === "saveImageToPhotosAlbum:fail authorize no response") {wx.showModal({title: '提示',content: '需要您授权保存相册',showCancel: false,success: modalSuccess => {wx.openSetting({success(settingdata) {if (settingdata.authSetting['scope.writePhotosAlbum']) {console.log('获取权限成功,给出再次点击图片保存到相册的提示。')} else {console.log('获取权限失败,给出不给权限就无法正常使用的提示')}}})}})}}})},fail: function (res) {}})},
如果要调微信授权的保存相册,可以用以下代码:
// 保存海报到相册savePoster() {let that = thiswx.getSetting({success(res) {if (res.authSetting['scope.writePhotosAlbum']) {that.saveImg();} else if (res.authSetting['scope.writePhotosAlbum'] === undefined) {wx.authorize({scope: 'scope.writePhotosAlbum',success() {that.saveImg();},fail() {that.authConfirm()}})} else {that.authConfirm()}}})},// 授权拒绝后,再次授权提示弹窗authConfirm() {let that = thiswx.showModal({content: '检测到您没打开保存图片权限,是否去设置打开?',confirmText: "确认",cancelText: "取消",success: function (res) {if (res.confirm) {wx.openSetting({success(res) {if (res.authSetting['scope.writePhotosAlbum']) {that.saveImg();} else {wx.showToast({title: '您没有授权,无法保存到相册',icon: 'none'})}}})} else {wx.showToast({title: '您没有授权,无法保存到相册',icon: 'none'})}}});},//保存图片saveImg: function () {var that = this;var imgUrl = that.data.imgUrl; //需要保存的图片地址console.log(imgUrl)wx.downloadFile({url: imgUrl,success(res) {// 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容console.log('downloadFileres', res);wx.saveImageToPhotosAlbum({filePath: res.tempFilePath,success(res) {console.log("保存图片:success");wx.showToast({title: '保存成功',});},fail: res => {console.log(res);wx.showToast({title: '保存失败',});}})}})},
希望文章有帮助到您解决问题,瑞思拜~
微信小程序保存图片(长按保存and点击保存)相关推荐
- 微信小程序实现长按复制和点击复制
我们在进行微信小程序开发时,经常会遇到用户通过长按文字复制和用户通过点击事件复制指定内容的需求. 长按复制: 微信小程序中text标签中有一个selectable属性可以满足我们的需求,我们只需要把属 ...
- 微信小程序保存图片拒绝授权后的操作
这个地方还是有些困惑人的,拒绝了保存图片的授权,处理不好再次保存图片的时候就没有反应了,还是很急人的,那么我们来记录一下这个地方. 大家都知道,微信小程序保存图片等都需要获取相对应的权限才可以进行接下 ...
- 微信小程序--保存图片到相册 失败:saveImageToPhotosAlbum:fail auth deny
@wx.saveImageToPhotosAlbum 微信小程序–保存图片到相册 失败:saveImageToPhotosAlbum:fail auth deny 是否授权了保存功能 wx.openS ...
- (转)微信小程序保存图片到相册
这篇文章主要为大家详细介绍了微信小程序保存图片到相册权限设置,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 微信小程序保存图片到相册可以分成两种:一种是保存网络图片,一 ...
- 微信小程序 长按图片不出现菜单_微信小程序实现长按删除图片的示例
说明 最近在学小程序,遇到长按图片删除的问题,特此记录,记录自己的成长轨迹 需求: 长按删除指定图片 需要解决的问题 长按事件如何表示出来? 如何获取当前长按元素的下标? 如何删除元素? 解决办法 长 ...
- 微信小程序实现长文本分段播放
微信小程序实现长文本分段播放 接上篇 微信小程序实现语音合成功能 解决腾讯智能语音插件中文最大支持100个汉字的问题 场景:需要合成100汉字以上的文本进行语音播报 注意:本文示例代码是在上篇基础上进 ...
- 微信小程序账号长时间未登录冻结解封
微信小程序账号长时间未登录冻结解封 1.账号找回链接[官方]:http://mp.weixin.qq.com/acct/findacct?action=scan 2.按照官方指引的三个操作步骤进操作, ...
- 微信小程序实现长摁复制和一键复制功能
微信小程序实现长摁复制和一键复制功能 长按复制(一定是text标签) text设置属性 selectable="true" 这样长摁就可以复制了. <text selecta ...
- “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。
"完美"解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来. 参考文章: (1)"完美"解决微信小程序购物车抛物动画,在连续点击时出现计 ...
- 【微信小程序】随机点名系统(点击开始滚动名字点击结束按钮结束滚动)
[微信小程序]随机点名系统(点击开始滚动名字点击结束按钮结束滚动) 1.效果图: 2.js代码 {Page({data:{condition: Math.floor(Math.random()*7+1 ...
最新文章
- 年货买了没?大数据告诉你年货买什么!
- 前端那么多框架,我们到底学哪一个
- linux系统启动卡住不动了,CentOS启动失败 卡在开机进度条certmonger解决
- 2019_7_30python
- 什么是传感器? 传感器由哪几部分组成? 传感器分类?
- python读取yaml文件
- JavaScript(二)数据类型
- qt 读取mysql数据库_qt 读取mysql数据库
- 《App后台开发运维和架构实践》推荐序
- 图文并茂教你如何用PLC控制伺服电机!
- 使用BAT脚本实现一键配置Mysql服务器和开启远程服务
- 使用vscode开发,使用插件记录
- 安卓圆形图片控件CircleImageView的使用
- 从零开始学五线谱_从零开始学简谱(快速入门)
- Mac OS X系统恢复软件
- java8 .map是什么意思_JDK8 stream().map() 作用
- Python导入sklearn报错:OSError: Failed to open file b‘C:\\\...AppData\\Local\\Temp\\scipy-...’
- 需求定律公式和需求弹性推导——《可以量化的经济学》
- 数据库授予用户增删改查的权限的语句_MySQL授予权限(Grant语句)
- 小语种翻译配音的软件推荐