微信小程序保存图片到相册;uni-app小程序保存网络图片到相册;小程序保存图片到相册拒绝授权后重新拉起授权;保存图片到系统相册;小程序保存图片测试可以,真机保存图片失败

文末代码可以直接复制使用,图片修改成你的图片路径即可

在这里插入图片描述

一、场景: 小程序点击按钮,保存项目内的静态图片或者微信头像或者后端返回的图片;

二、注意点及思路拆分:
–2.1:小程序保存图片功能,必须要有scope.writePhotosAlbum保存图片到相册的授权权限才可以
–授权会有拒绝时候,拒绝授权后如何再次重新拉起授权,以下代码直接写了
.
–2.2:保存图片到系统相册,图片文件路径,可以是临时文件路径也可以是永久文件路径,不支持网络图片路径(和项目内的相对图片路径)
.
–2.3:针对上述的2.2不支持的图片,我们需要使用uni.getImageInfo()获取其图片的临时文件路径进行保存
uni.getImageInfo()支持获取src为相对路径、临时文件路径、存储文件路径和网络图片路径的图片,以此获得此图片的图片信息(就包含此图片的临时路径)
.
–2.4:小程序下获取网络图片信息需先配置download域名白名单才能生效(文后有如何配置白名单),否则获取会报错getImageInfo:fail download image fail. reason: downloadFile:fail createDownloadTask:fail url not in domain list

–这一点非常重要:网络图片如果不配置download域名白名单,可能就导致你测试扫码或真机测试和小程序工具上都没问题,但是真正线上生产环境的却报错。

在这里插入图片描述

参考:小程序后台设置域名

在这里插入图片描述

在这里插入图片描述

三、以下保存图片代码可直接复制,只需要将第12行的 localImg 图片路径改成你的图片路径即可(前提:如果是网络图片,一定要配置下载域名白名单)

直接复制拿去使用即可!有效就点赞收藏一波吧!

<template><view><img :src="localImg" alt=""><button @click="checkPermissions">点击保存图片到相册</button></view>
</template><script>
export default {data () {return {localImg: '../static/iconimg/big.png',//这个是项目内的相对路径图片    如果是微信头像需要设置域名白名单}},methods: {// 检查是否有权限checkPermissions () {let that = this// 获取用户是否开启 授权保存图片到相册。uni.getSetting({success (res) {// console.log('已知权限',res)// 如果没有授权if (!res.authSetting['scope.writePhotosAlbum']) {// 则拉起授权窗口uni.authorize({scope: 'scope.writePhotosAlbum',success () {//点击允许后--就一直会进入成功授权的回调 就可以使用获取的方法了that.saveImg()},fail (error) {//点击了拒绝授权后--就一直会进入失败回调函数--此时就可以在这里重新拉起授权窗口console.log('拒绝授权则拉起弹框', error)uni.showModal({title: '提示',content: '若点击不授权,将无法保存图片',cancelText: '不授权',cancelColor: '#999',confirmText: '授权',confirmColor: '#f94218',success (res) {console.log(res)if (res.confirm) {// 选择弹框内授权uni.openSetting({success (res) {console.log(res.authSetting)}})} else if (res.cancel) {// 选择弹框内 不授权console.log('用户点击不授权')}}})}})} else {// 有权限--直接保存console.log('有权限  直接调用相应方法')that.saveImg()}},fail: (error) => {console.log('调用微信的查取权限接口失败,并不知道有无权限!只有success调用成功才只知道有无权限', error)uni.showToast({title: error.errMsg,icon: 'none',duration: 1500,})}})},saveImg () {let that = thisuni.showLoading({ title: '加载中...', mask: true })// 获取图片信息--可以拿到图片的临时地址(保存时候用的是临时地址)uni.getImageInfo({src: that.localImg,//小程序下获取网络图片信息需先配置download域名白名单才能生效。例如微信头像的保存就是网络图片,需要在小程序后台配置下载域名// 想要知道这个网络图片的域名 可以通过小程序模拟器-详情-本地设置-取消勾选(不校验合法域名、web-view.......证书) 控制台就会打印提示域名配置success: image => {// 获取图片临时地址成功let img_local_now = image.path// 真正保存图片方法 -- 保存图片的文件路径,可以是临时文件路径也可以是永久文件路径,不支持网络图片路径(也不支持本地代码里的相对图片路径)uni.saveImageToPhotosAlbum({filePath: img_local_now,success: function () {uni.hideLoading()uni.showToast({icon: 'none',position: 'bottom',title: "已保存到系统相册",duration: 1500,})},fail: error => {uni.hideLoading()console.log("保存图片失败", error)uni.showToast({title: error.errMsg,icon: 'none',mask: true,})}})},fail: error => {uni.hideLoading()console.log("获取图片信息(临时地址)失败", error)uni.showToast({title: error.errMsg,icon: 'none',mask: true,})}})}},
}
</script><style>
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于单片机中断

中断&#xff1a;CPU停止当前任务&#xff0c;去处理中断内容&#xff0c;处理完后自动恢复以前任务。 单片机有5个中断源&#xff0c;2个中断优先级&#xff0c;中断受两级控制&#xff1a; 1、CPU开总中断&#xff1b; 2、中断源开中断。 中断源&#xff1a;引起中断事件的类…

转:探索 AIX 6:在 AIX 6 上配置 iSCSI Target

引言iSCSI&#xff08;Internet Small Computer System Interface&#xff09;被业界认为是非常廉价的 SAN 解决方案&#xff0c;一直在中低端应用领域被市场所看好。 iSCSI 客户端和服务端都既可以通过硬件方式实现&#xff0c;也能通过软件方式的&#xff0c;其优劣区别就是在…

uni-app微信小程序生成自定义参数二维码,跳转小程序指定页面,获取参数;uni-app微信小程序获取二维码自定义参数;微信小程序生成动态参数二维码;uni-app微信小程序获取动态参数二维码;

一、场景需求&#xff1a; 在小程序个人名片页面A页面&#xff0c;生成用户的个人名片二维码&#xff08;该二维码携带用户的唯一标识id&#xff09;&#xff1b;微信扫一扫或长按图片识别这个二维码&#xff0c;可以跳转到小程序的B页面&#xff0c;并且在B页面拿到二维码上的…

【view桌面虚拟化系列】1-vSphere搭建

本系列一共三章&#xff0c;具体如下&#xff1a; 【view桌面虚拟化系列】1-vSphere搭建 【view桌面虚拟化系列】2-View搭建 【view桌面虚拟化系列】3-VDI实现 实验的目的:测试vsphere5.1a、view5.1测试整体运行状况。 首先介绍下环境&#xff08;所使用域名&#xff1a;vmc.co…

uni-app微信小程序保存页面到相册;canvas保存小程序页面;微信小程序保存二维码活动页面到相册;微信小程序canvas 生成海报保存到相册;canvas绘制小程序页面保存及分享;

文末代码可以直接复制运行&#xff08;只需要将中间的二维码图片、底部的微信和相册图片和微信头像配置白名单 改成你项目内的img图片即可成功运行&#xff09; 一、场景&#xff1a;在微信小程序 个人名片页面 含有微信头像和个人信息二维码&#xff08;识别可跳转小程序指定页…

面试经验谈架构

##################################################### #本文内容来自《老男孩linux运维实战培训》学生—郑东旭 #如有转载&#xff0c;请务必保留本文链接及本版权信息。 #欢迎广大运维同仁一起交流linux/unix网站运维技术! #QQ:919953500#E-mail:weilandeshanhuhai126.com …

微信小程序uni.switchTab传参获取不到;小程序跳转到tabBar页并传参;uni-app微信小程序获取tabBar页面参数失败;uni-app微信小程序tabBar页面onLoad不执行

需求场景&#xff1a;从非tabBar页面B跳转到tabBar页面A&#xff0c;并想要携带参数。 如果使用uni.switchTab传参&#xff0c;会导致tabBAE页面获取不到参数&#xff1b; 原因&#xff1a; 官方文档有说&#xff0c;uni.switchTab路径后不能带参数&#xff1b; uni.navigateT…

UIView的旋转iOS开发

更多阅读请访问http://www.hopean.com 有关UIView坐标变换的&#xff0c;但是经常不能得到自己想要的效果&#xff0c;今天就把它仔细研究了下。记下来等以后忘记的时候再复习 重写shouldAutorateToInterfaceOrientation:&#xff0c;限制某个方向会改变原点的位置&#xff0c;…

uni-app微信小程序uni.navigateTo跳转无效问题;记录一次uni-app页面跳转无效,来回跳转问题;wx.navigateTo ,跳转超过10次怎么点不动的解决办法。

场景需求&#xff1a;从小程序A页面跳转到小程序B页面&#xff0c;然后B页面还可以跳到A页面。 跳转失效原因&#xff1a; –1.uni.navigateTo只能跳转到非tabBar页面&#xff0c;tabBar导航栏页面只能用uni.switchTab方法跳转&#xff1b; –2.uni.navigateTo跳转的页面栈太多…

20160512关于mac安装caffe的记录

记得2015年在mac系统上安装过一次caffe&#xff0c;非常顺利&#xff0c;但是最近群里许多同学反映mac安装caffe出现了各种问题&#xff0c;同时我也在帮助别人安装caffe的时候也遇到了一些坑&#xff0c;不再像以前这么顺利了。估计与操作系统&#xff0c;caffe升级有关。 今晚…

Python学习笔记(二)

2019独角兽企业重金招聘Python工程师标准>>> pickle #腌制 pickle.dump() #保存数据 pickle.load() #恢复数据 locals() # 返回当前作用域中的变量集合 with语句会自动处理所有已打开文件的关闭工作&#xff0c;类似C#中的using() >>> data[5,78,3,45,7,1]…

mac:在当前文件夹打开terminal终端

From: http://www.cnblogs.com/yjmyzz/p/3662507.html System Preferences -> Keyboard -> Shortcuts -> Services -> New Terminal at Folders/New Terminal Tab at Folder 这二项都勾上 然后在Finder中,在任何目录上右击->service就能看到进入terminal的选项

自定义控件(视图)2期笔记13:View的滑动冲突之 内部拦截法

1. 内部拦截法&#xff1a; 父容器不拦截事件&#xff0c;所有的事件全部都传递给子元素&#xff0c;如果子元素需要此事件就直接消耗掉&#xff0c;否则就交给父容器进行处理。 这种方法和Android中的事件分发机制不一样&#xff0c;需要配合requestDisallowInterceptTouchEve…

微信小程序图片加载太慢;uni-app微信小程序加载图片优化;微信小程序图片image加载成功事件@load;图片加载成功触发@load事件

场景&#xff1a; 微信小程序&#xff0c;对于以下较大的图片&#xff08;例如几M&#xff09;&#xff0c;在真机运行时候加载比较慢&#xff0c;此时会有一个比较长时间的白屏&#xff0c;体验很差。 解决方案&#xff1a;图片未加载成功前&#xff0c;进行loading…;图片加载…

循环队列及C语言实现一

循环队列是为了充分利用内存&#xff0c;进行数据操作的一种基本算法。具体实现方式可划分为&#xff1a;链式队列和静态队列&#xff0c;这里所谓的静态是指在一片连续的内存区域进行数据操作。本文只讲述静态队列&#xff0c;也是最简单的实现方式&#xff0c;链式队列以及链…

微信小程序自定义导航栏;uni-app微信小程序自定义顶部导航栏;微信小程序顶部导航栏高度;微信小程序左上角胶囊按钮;uni-app微信小程序左上角胶囊设置

本文是自定义微信小程序的顶部导航栏&#xff1b;自定义微信小程序底部导航栏tabBar看另外这篇 文末的两个文件代码可以直接复制使用 自定义导航栏页图 一、场景&#xff1a; 有些时候&#xff0c;微信小程序需要我们在导航栏做更多的操作样式&#xff08;例如高度、颜色、加…

HTML5与HTML4的比较

HHTML5封装一些标签和属性&#xff0c;方便了开发。 1 <form> 2 <p> 3 <label>Username:<input name"search" type"text" id"search" autofocus></label> 4 </p> 5 &l…

[iOS]Unable to run app in Simulator

From: http://blog.csdn.net/snowwind/article/details/41099575 今天在试Admob的时候&#xff0c;发现在simulator上&#xff0c;程序突然不能运行了&#xff0c; 提示 [plain] view plaincopy Unable to run app in Simulator An error was encountered while running (…

uni-app微信小程序动态样式设置;微信小程序style行内式无效;微信小程序style行内式编译报错;微信小程序:style设置样式

场景&#xff1a;微信小程序设置动态样式&#xff0c;有些时候是需要用到变量来书写的&#xff1b;但是实际使用发现&#xff0c;行内式书写虽然有效&#xff0c;但是会使得微信小程序的编辑失败&#xff1b;故需要使用动态的v-bind来写动态变量行内式样式&#xff08;既使用:s…