小程序权限设置:小程序下载图片保存到相册拒绝权限后,再次打开权限的解决方案

2023-10-27

小程序下载图片保存到相册功能,首次操作会提示:保存图片或视频到你的相册,有‘拒绝’和‘允许’两个选项,如果选择了拒绝就会保存失败:saveImageToPhotosAlbum:fail auth deny,那么后续想打开该权限又该怎么操作呢?

这里示例运用的是uniapp框架,如果是用微信小程序官提供的框架,就把uni替换成wx

知识点: uni.openSetting(OBJECT) 调起客户端小程序设置界面,返回用户设置的操作结果。具体可以参考官网说明:https://uniapp.dcloud.io/api/other/setting?id=opensetting

话不多说,直接上示例代码:

let url = 'https://img.book118.com/sr1/M00/3D/00/wKh2AmFgEtWIQtroAAGme53MfZoAAxfXwHgi04AAaaT36.jpeg';

uni.downloadFile({
	url: url,
	success(res) {
		let filePath = res.tempFilePath;
		uni.saveImageToPhotosAlbum({
			filePath: filePath,
			success(res) {
				setTimeout(() => {
					uni.showToast({
						title: '保存成功'
					})
				}, 10)
			},
			// 一般情况,选择了拒绝就会进入fail中
			fail(err) {
				uni.showModal({
					title: '提示',
					content: '需要您授权保存相册',
					showCancel: false,
					success(res) {
						if (res.confirm) {
							uni.openSetting({
								success(settingdata) {
									if (settingdata.authSetting['scope.writePhotosAlbum']) {
										uni.showModal({
											title: '提示',
											content: '获取权限成功,再次保存图片即可成功',
											showCancel: false,
										})
									} else {
										uni.showModal({
											title: '提示',
											content: '获取权限失败,无法保存到相册',
											showCancel: false
										})
									}
								}
							})
						}
					}
				})
			}
		})
	},
	fail(err) {
		setTimeout(() => {
			uni.showToast({
				icon: 'none',
				title: '下载失败:' + JSON.stringify(err.errMsg)
			})
		}, 10)
	}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小程序权限设置:小程序下载图片保存到相册拒绝权限后,再次打开权限的解决方案 的相关文章

  • vue 点击改变数组中选中的icon颜色(结合拖拽实现)

    1 vue 点击改变数组中选中的icon颜色 在Vue中 可以通过使用v bind指令来动态地修改元素的样式 要根据点击事件来改变数组中选中图标的颜色 首先需要定义一个data属性来存储当前被选中的索引值或者其他相关信息 然后 在模板中使用
  • React安装依赖 node_modules中有下载依赖项但package.json文件中没有依赖

    React安装依赖 node modules中有下载依赖项但package json文件中没有依赖 直接在下载依赖项后 加 S 就可以解决 随机 id 生成器 uuid nanoid npm install nanoid S S save
  • Firefox浏览器-渗透测试插件推荐

    在日常工作中可能需要一些浏览器插件辅助我们做工作 下面是比较好的 当然不一定对你有用 找到适合自己的即可 FoxyProxy FoxyProxy是一个高级的代理管理工具 它完全替代了Firefox有限的代理功能 它提供比SwitchProx
  • 【面试】 前端竞争压力大?揭秘让你们学后端的真实动机!

    前端开发属于程序员吗 网友是这样回答的 看完前端同学的评论 我悟了 你们让人都去学后端卷 然后减小前端竞争压力是吧 哈哈哈 你们这帮老6 于是我去拿出了我收藏的 某前端招聘JD来盘一盘 那些觉得 是个人都能干前端 的同学们想必已经熟练掌握了
  • JS特效第74弹:旅游城市图片百叶窗切换React特效

    全屏的旅游城市景点图片滑动百叶窗轮播切换效果 先来看看效果 一部分关键的代码如下 div div
  • ❤ Vue3 使用

    Vue3 使用 Vue3之toRefs的使用 作用 toRefs 可以将一个响应式的对象 转换成普通对象 但是转换后的普通对象的每一个属性值都是响应式的 这样我们可以使用es6的对象解构或者三点运算符等操作 代码
  • 接口测试之Fiddler弱网测试

    前言 目前市面上的APP功能越来越丰富 移动端测试也越显为重要 因为用户在网速慢的情况下 你的网站 软件 总能出现各种各样的问题 请不要忽略这一点 针对在不同的网络情况下 接下来 本篇要讲述的就是在通过fiddler对APP进行模拟弱网测试
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • Android SDK开发艺术探索(五)安全与校验

    一 前言 本篇是Android SDK开发艺术探索系列的第五篇文章 介绍了一些SDK开发中安全方面的知识 包括资源完整性 存储安全 权限校验 传输安全 代码混淆等知识 通过基础的安全配置为SDK保驾护航 探索SDK开发在安全方面的最佳实践
  • 构建Python随机密码生成器:保障账户安全的简易工具

    密码安全是当前数字时代的一个重要议题 在保护个人信息和账户安全方面 安全且可靠的密码是至关重要的 本文将带您逐步了解如何使用Python创建一个随机密码生成器 以生成高强度 难以猜测的密码 导言 在网络环境中 密码是保护个人账户和敏感信息的
  • 思政课程如何提升学习效率?这个方法分享给你

    在当今社会 思政学习具有重要的意义 思政通学习小程序为我们提供了一个优质的学习平台 通过不断深入思考和学习 我们能够更好地认识社会 提升自我素质 客户案例 陈同学 思政通学习小程序提供了涵盖政治 经济 文化 科技等多个领域的学习内容 使我能
  • 低代码-详情页组件设计

    效果图 详情页数据结构定义 layout 按钮数据 buttonLayout headButton 页头按钮 footButton 页脚按钮 详情页表单配置 config 配置组件列表 detailLayout 默认行为 进表单初始化 只展
  • vue实现 marquee(走马灯)

    样式 代码 div class marquee prompt div class list prompt span class prompt item span div div data return listPrompt xxx xxxx
  • APP开发毕业设计|ssm爱心小屋公益机构智慧管理APP

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 每日变更的最佳实践

    在优维公司内部 我们采用发布单的方式进行每天的应用变更管理 这里给各位介绍优维的最佳实践 变更是需要多角色合作的 而且他是整体研发流程的一部分 在优维内部 我们坚持每日变更 打通开发环节到最终发布上线的全过程 在保证质量的前提下 尽可能提升
  • 【js学习之路】遍历数组api之 `filter `和 `map`的区别

    一 前言 数组是我们在项目中经常使用的数据类型 今天我们主要简述作用于遍历数组的api filter 和 map 的区别 二 filter和map的共同点 首先 我们主要阐述一下 filter 和 map 的共同点 api的参数都是回调函数
  • Vue中下载不同文件常用的方式

    1 使用window open方法下载文件
  • 获取年与年之间的所有年份

    function getYearsBetween startYear endYear var years 存放结果的数组 for var year startYear year lt endYear year years push year
  • 如何在 Python 脚本中使用 Google OAuth2

    在使用 Python 脚本将视频上传到 YouTube 频道时 若希望将视频上传到第二个频道 需要解决 OAuth2 授权的问题 解决方案 创建新的 Google Cloud 项目 from google oauth2 import ser

随机推荐

  • Go(五)数组

    目录 Array 数组 数组定义 数组的初始化 方法一 方法二 方法三 数组的遍历 多维数组 二维数组的定义 二维数组的遍历 数组是值类型 Array 数组 数组是同一种数据类型元素的集合 在Go语言中 数组从声明时就确定 使用时可以修改数
  • 常见凭证获取方法

    常见凭证获取方法 Windows下凭证获取 系统密文数据 原理介绍 SAM系统安全账号管理 是微软设计的一个安全机制 为了保护账号以及密码的安全性 路径是C windows system32 config SA 该文件是无法修改和删除的 它
  • Balanced Ternary String【Codeforces Round #531 (Div. 3)D】【贪心、构造】

    题目链接 一道简单的构造 我们可以分成几个状态 因为所有的状态只有8个 所以 直接写每个状态即可 哎 被hack了 烦啊 谁让我写的好烂 好菜啊 呜呜呜 include
  • 云服务器一直显示关机中,云服务器一直提示关机中

    云服务器一直提示关机中 内容精选 换一换 云服务器组是对云服务器的一种逻辑划分 云服务器组中的弹性云服务器遵从同一策略 当前仅支持反亲和性 即同一云服务器组中的弹性云服务器分散地创建在不同的主机上 提高业务的可靠性 您可以使用云服务器组将业
  • 适合上班族的兼职有哪些?上班族兼职赚钱项目

    上班族如何赚外快 其实上班族压力很大的 表面看起来衣着得体 出入高端写字楼 但一个月到手的几千元工资除去房租水电生活车马费后 基本上余不下什么钱 更别谈买车买房了 所以很多上班族都想知道 如何利用业余时间兼职钱 今天理想青年工作室就为大家分
  • Unity3D-Shader之两张图片叠加并且通过颜色调控

    最近项目需要做一个图片叠加在一个模型上 而且还需要通过调整颜色改变两个图片的颜色和透明程度 另外 还需要一个调控值 管理两张图片是否完全显示 Shader如下 Shader Unlit BlockTextrue Properties Mai
  • Nginx & 详细举例 location -> index、return、rewrite、try_files、alias 各个属性的含义和注意事项

    1 准备工作 1 1 本案例以 centos7 系统作为演示 配置文件在 etc nginx conf d test conf 中 内容如下 server listen 8000 server name 127 0 0 1 root hom
  • 【MindSpore】一种参数归一化实现方式

    1 功能描述 MindSpore实现WeightNorm参数归一化 2 实现分析 在MindSpore实现高性能方案 建议采用图模式 同时也能保证动静统一 MindSpore图模式需要把归一化操作表达到整图里 可以采用自定义的方式在网络结构
  • Mairadb数据库的备份和恢复

    Mairadb数据库的备份和恢复 一 检查数据库状态 1 检查mariadb的服务状态 2 测试进入mariadb数据库 二 配置二进制日志功能 1 修改 etc my conf 2 重启服务 3 查看二进制日志文件 4 查看binlog开
  • chrome浏览器设置广告拦截器-Adblock Plus

    1 点击下面 chrome 网上应用店 Adblock Plus 的插件链接地址 https chrome google com webstore detail adblock plus free ad bloc cfhdojbkjhnkl
  • 【个人记录】bert初步学习

    目的 背景 使用医疗方面的bert模型 进行实体识别和医患匹配 参考 如何快速使用BERT 知乎 zhihu com tensorflow版本与python版本不相容的问题 fltenwall的博客 CSDN博客 中文医疗预训练模型 MC
  • ICLR 2022

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 CrossFormer A Versatile Vision Transformer Based on Cross scale Attention CrossForme
  • 安卓架构组件实战——Lifecycle

    注 本文涉及代码请看 项目源码 Lifecycle是谷歌推出的一个架构组件 用于感知组件生命周期 并赋予了非组件对象感知生命周期的能力 Lifecycle组件用来响应另一个组件的生命周期状态变化 例如Activity和Fragment 可以
  • 软路由IP配置指南

    在网络设置中 正确地配置软路由IP是至关重要的一步 本文将以轻松风格为您提供详细解决方案 帮助您完成这个任务 并确保操作价值和专业度 随着互联网的普及 家庭或小型企业越来越需要强大而可靠的网络连接 使用软路由可以让我们更好地管理局域网内部流
  • 升级springboot2.0升级后出现的问题以及解决办法

    本来是准备升级springcloud的版本 Finchley RC1 gt Greenwich SR3 父模块的pom xml中springcloud版本由Finchley RC1升级到Greenwich SR3 对应的springboot
  • servlet获取表单数据

    Java servlet获取form表单数据 参数 在 Servlet 中如何使用 HttpServletRequest 获取请求参数和 request 对象传递数据有哪些方法 1 获取请求参数 在实际开发中 经常需要获取用户提交的表单数据
  • windows服务器tomcat部署Java项目并配置nginx

    下载安装jdk并配置环境变量 下载安装 百度网盘共享 win64位 提取码 1ytp 配置环境变量 第一步 配置JAVA HOME 值为JDK的安装目录 第二步 配置Path 需要注意Path路径一般是存在的 只需要追加即可 这里使用 JA
  • linux&树莓派开发——“交叉编译&软硬链接“ 工作中必然用到的技术 实现不同主机间交互开发

    交叉编译 一 交叉编译概念 二 为什么要交叉编译 交叉编译的基本知识 三 什么是交叉编译链 3 1 交叉编译链的命名规则 3 2 交叉编译工具链 交叉编译器 是什么 四 交叉编译工具链安装 1 临时有效 关闭窗口就无效了 2 永久有效 多少
  • 编写NodeJs脚本实现接口请求

    要编写运行脚本 需要先搭建开发环境 环境搭建 nodeJs脚本运行 当然需要先安装nodejs环境 官方地址在这里 nodejs官网 打开官网地址 可以看到下面一句话 Node js is an open source cross plat
  • 小程序权限设置:小程序下载图片保存到相册拒绝权限后,再次打开权限的解决方案

    小程序下载图片保存到相册功能 首次操作会提示 保存图片或视频到你的相册 有 拒绝 和 允许 两个选项 如果选择了拒绝就会保存失败 saveImageToPhotosAlbum fail auth deny 那么后续想打开该权限又该怎么操作呢