1.前言
将图片保存到相册,可使用微信接口wx.saveImageToPhotosAlbum,但需要提前授权。
https://blog.csdn.net/zkn_2439656793/article/details/78039924
2.网上的代码
//获取相册授权
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
wx.authorize({
scope:'scope.writePhotosAlbum',
success() {
console.log('授权成功')
}
})
}
}
})
//文件下载
var imgSrc = "http://data.zhenkuaisong.com/2017-6-13/20170914/1505375270554.jpg"
wx.downloadFile({
url: imgSrc,
success:function (res) {
console.log(res);
//图片保存到本地
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success:function (data) {
console.log(data);
},
fail:function (err) {
console.log(err);
if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
console.log("用户一开始拒绝了,我们想再次发起授权")
console.log('打开设置窗口')
wx.openSetting({
success(settingdata) {
console.log(settingdata)
if (settingdata.authSetting['scope.writePhotosAlbum']) {
console.log('获取权限成功,给出再次点击图片保存到相册的提示。')
}else {
console.log('获取权限失败,给出不给权限就无法正常使用的提示')
}
}
})
}
}
})
}
})
3.实际使用的代码
onSaveImageBtn: function(){ //保存图片到本地
if(!(cc.sys.platform === cc.sys.WECHAT_GAME)) return;
common.mta.Event.stat('weidu',{'gamesaveimage': 'true'}); //腾讯统计-游戏界面存图发朋友圈点击次数
var self = this;
var value = common.levelMap[common.currentLevel - 1];
var imgSrc = "https://game.zuiqiangyingyu.net/wb_webview/zqddn_zhb/codeShare/codeShare" + value + ".jpg";
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) { //未授权
wx.authorize({
scope:'scope.writePhotosAlbum',
success() {
console.log('授权成功')
wx.downloadFile({
url: imgSrc,
success:function (res1) {
console.log(res1);
wx.saveImageToPhotosAlbum({
filePath: res1.tempFilePath,
success:function (data) {
console.log(data);
self.showTipsUI("题目图片保存成功");
},
fail:function (err) {
console.log(err);
}
});
}
});
},
fail() {
console.log("授权失败");
wx.showModal({
title: '提示',
content: '点击确定,保存图片到相册。',
success:function(res){
if (res.confirm){
wx.openSetting({
success(res){
console.log("重新获得保存图片授权状态");
if (res.authSetting["scope.writePhotosAlbum"]){ //如果用户重新同意了授权登录
wx.downloadFile({
url: imgSrc,
success:function (res1) {
console.log(res1);
wx.saveImageToPhotosAlbum({
filePath: res1.tempFilePath,
success:function (data) {
console.log(data);
self.showTipsUI("题目图片保存成功");
},
fail:function (err) {
console.log(err);
}
});
}
});
}
},
fail(){
console.log("重新获得保存图片授权状态失败");
}
})
}
}
})
}
});
}else{ //已授权
wx.downloadFile({
url: imgSrc,
success:function (res1) {
console.log(res1);
wx.saveImageToPhotosAlbum({
filePath: res1.tempFilePath,
success:function (data) {
console.log(data);
self.showTipsUI("题目图片保存成功");
},
fail:function (err) {
console.log(err);
}
});
}
});
}
}
});
},
以上代码实现了即使用户一开始点击的取消,也可以在下次提示玩家去开启设置的功能。
cocos-creator使用记录29_微信授权将图片保存到相册
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 微信小程序自定义组件的使用,来自项目的总结 一直以来忙项目都没有什么时间来写博客,今天晚上刷了会儿csdn,知乎等...