小程序开发中,如果出现保存图片到系统相册失败一般是这两个原因导致的:
1、授权问题
2、所下载的图片地址未配置到小程序开发中后台 download合法域名
1、授权问题
(1)如果用户第一次点击的时候,对弹出来的微信授权弹窗点击了拒绝,那么之后点击保存图片就没用了:
如果用户第一次点击了拒绝授权
(2)所以我们应该做下用户授权判断,首先我们应该调用wx.getSetting(OBJECT)方法获取用户的当前设置,看看用户请求过的权限中是否存在保存到相册这个权限。
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
// ...
} else {
// ....
}
}
});
PS:现在的版本可以通过 button组件的open-type="getsetting" 属性来代替wx.getSetting方法。
(3)如果用户没有保存到相册这个权限,那么,我们就应该使用wx.authorize(OBJECT)向用户发起授权请求。
调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success() {
// ...
},
fail() {
}
});
} else {
// ...
}
}
});
(4)当授权成功,我们应该执行保存图片到本地的saveImage函数(上一章写好的),否则,如果fail则执行wx.opoenSetting(OBJECT)方法调起客户端设置界面让用户可以再次同意授权。
授权问题处理
(5)但是这里还有一个评论区@阿毛_1cd5提出来的问题:
问题
怎么解决?我们用个isFirst变量将用户第一次进来的时候用个值记录下来,如果是第一次进来且点击取消授权那么我们就不调用openSetting,反之调用。
记录用户是否是第一次点击取消授权
这样我们就解决了在保存图片的时候关于用户授权的问题。
手机打开调试模式可以保存图片,但是关闭调试模式就不能保存图片了。
- 这个问题很简单,因为在打开调试模式的时候,我们一般勾选了不校验合法域名,所以可以保存图片: 项目设置
- 因为将图片保存到本地需要调用wx.downloadFile(OBJECT)这个api,所以解决的方法就是在微信公众平台中添加downloadFile合法域名就可以解决这个问题了 添加downloadFile合法域名
- oppo黑屏怎么恢复(oppo打电话黑屏怎么办)
- uc浏览器怎样设置同步书签(UC浏览器已领先Edge)
- mate10最好的系统版本(基于安卓9的EMUI9系统新增功能简单体验)
- 手机串码查询平台((手机、电脑通用))
- 电费明细表怎么看总用电(以新疆为例)
- 电脑怎么打出分数(是任何进行录入)
- 腾讯视频vip签到得积分(搜狗搜索软件免费领取腾讯视频会员)
- 华为平板价格图片大全(2999的墨水屏平板价格最香)
- 第五人格屠夫全部教学(第五人格屠夫攻略解说)
- 2022新版抖音下载免费(可以用电脑刷短视频了)
- 征兵体检程序与要求(征兵体检攻略来了)
- 拼多多退款退货忘记填写单号了(拼多多无法驳回退款申请)
- oppo手机如何屏蔽系统自动升级(13使用技巧)
- 王者荣耀铭文可以复制吗(王者荣耀明文升级复制铭文技巧)
- 最新版yy怎么设置小窗口播放(|)
- 排名
- 软件
- 人气
- 下载