前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序图片下载授权|用户拒绝授权后如何引导用户重新发起授权

小程序图片下载授权|用户拒绝授权后如何引导用户重新发起授权

作者头像
梦溪
发布2023-03-06 14:58:27
1.8K0
发布2023-03-06 14:58:27
举报
文章被收录于专栏:梦溪博客梦溪博客

小程序图片下载到本地”

在小程序中,当用户想要保存图片时,一般需要用户授权相册权限,否则将无法保存,通常在保存接口被调用时需要先判断用户是否授权。

点击跳转小程序体验

1 接口

  • uni.openSetting
  • uni.getSetting
  • uni.downloadFile
  • uni.saveImageToPhotosAlbum
  • uni.authorize

2 下载流程

  • 使用判断是否授权 uni.getSetting
  1. 已授权

对于已经获取用户授权的,会直接调用uni.downloadFile接口,下载远程文件到本地,然后获取文件临时地址,调用uni.saveImageToPhotosAlbum接口保存至用户相册

  1. 未授权

如果getSetting获取到用户是未授权的状态,则会调用uni.authorize接口,获取权限,如果用户点击授权,则会按照正常流程

那如果用户误点拒绝授权呢?这时候得引导用户再次发起授权,这时候就得用到uni.openSetting接口,引导用户到设置界面,打开权限

代码

代码语言:javascript
复制
		methods: {
			//打开设置授权
			e() {
				uni.openSetting({
					success(res) {
						console.log(res.authSetting)
						uni.showToast({
							icon: 'success',
							title: '授权成功'
						})
					}
				});
			},
			download() {
				const _this = this

				uni.getSetting({
					success(res) {
						if (!res.authSetting['scope.writePhotosAlbum']) {
							uni.authorize({
								scope: 'scope.writePhotosAlbum',
								success(res) {
									console.log(res, '同意授权');
									_this.saveImage()
								},
								fail(err) {
									console.log(err, '拒绝授权');
									uni.showModal({
										title: '提示',
										content: '检测到您没有授权保存图片到相册,为了更好的体验,请前往设置授权',
										success: function(res) {
											if (res.confirm) {
												_this.e()
											} else if (res.cancel) {
												console.log('用户点击取消');

											}
										}
									});
								}
							})
						} else {
							console.log('已经授权');
							_this.saveImage()
						}
					}
				});
			},
			saveImage() {

				const _this = this
				uni.downloadFile({
					url: _this.expression,
					success: function(res) {
						console.log(res);
						if (res.statusCode === 200) {
							uni.saveImageToPhotosAlbum({
								filePath: res.tempFilePath,
								success: function(res) {
									uni.showToast({
										icon:'success',
										title:'保存成功'
									})
								},
								fail: function(err) {
									console.log(err);
									uni.showToast({
										icon: 'error',
										title: '保存失败'
									})
								}
							});
							
						}

					
					
					},
					fail:function(err) {
						console.log(err);
					}
				});
		
			}
		}
	}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 梦溪博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 接口
  • 2 下载流程
  • 代码
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档