uniapp 微信小程序 实现 将base64图片保存相册和转发分享微信好友功能记录 直接cv就能用!!!!

这篇具有很好参考价值的文章主要介绍了uniapp 微信小程序 实现 将base64图片保存相册和转发分享微信好友功能记录 直接cv就能用!!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、base64图片保存相册功能

提示api:that.$refs.uToast.show用的是uview2.0的toast,可以根据具体引入的ui库去更换;

saveBase64ImageToPhotosAlbum() {
				let that = this
				var timestamp = new Date().getTime();
				let base64 = this.userInfo.jumpAddFriendQr.replace(/^data:image\/\w+;base64,/, ""); //去掉data:image/png;base64,
				let filePath = wx.env.USER_DATA_PATH + `/addFriends_${timestamp}_qrcode.png`;
				uni.showLoading({
					title: '保存中',
					mask: true
				})
				uni.getFileSystemManager().writeFile({
					filePath: filePath, //创建一个临时文件名
					data: base64, //写入的文本或二进制数据
					encoding: 'base64', //写入当前文件的字符编码
					success: res => {
						uni.saveImageToPhotosAlbum({
							filePath: filePath,
							success: function(res2) {
								uni.hideLoading();
								that.$refs.uToast.show({
									type: 'success',
									message: "保存成功~",
									duration: 1200,
								})
							},
							fail: function(err) {
								uni.hideLoading();
								console.log(err.errMsg);
								that.$refs.uToast.show({
									type: 'error',
									message: `保存失败`,
									duration: 1200,
								})
							}
						})
					},
					fail: err => {
						uni.hideLoading();
						console.log(err)
						that.$refs.uToast.show({
							type: 'error',
							message: `创建文件失败`,
							duration: 1200,
						})
					}
				})
			},
			saveQRcodeFn() {//保存图片到相册按钮的点击事件函数
				let that = this
				uni.getSetting({
					success(res) {
						console.log(res);
						if (!res.authSetting['scope.writePhotosAlbum']) {
							uni.authorize({
								scope: 'scope.writePhotosAlbum',
								success(res) {
									that.saveBase64ImageToPhotosAlbum()
								},
								fail() {
									uni.showModal({
										content: '请允许相册权限,拒绝将无法正常保存图片',
										showCancel: false,
										success() {
											uni.openSetting({
												success(settingdata) {
													if (settingdata.authSetting['scope.writePhotosAlbum']) {} else {
														console.log('获取权限失败')
														that.$refs.uToast.show({
															type: 'error',
															message: `获取权限失败`,
															duration: 1200,
														})
													}
												}
											})
										}
									})
								}
							})
						} else {
							that.saveBase64ImageToPhotosAlbum()
						}
					}
				})
			},

二、转发分享base64图片给微信好友功能 

该功能在微信开发者工具中调试的时候会一直报错,真机是没问题的,可能是编译器的bug。

uniapp分享图片到微信,uniapp(小程序),u-view,uni-app,微信小程序,小程序

sharePic() {//分享图片给好友按钮的点击事件函数
				let that = this
				this.base64ToFilePath(this.userInfo.jumpAddFriendQr, (filePath) => {
					console.log(filePath);
					wx.showShareImageMenu({ //分享给朋友
						path: filePath,
						success: (res) => {
							console.log("分享成功:", res);
						},
						fail: (err) => {
							console.log("分享取消:", err);
						},
					})
				})
			},
			base64ToFilePath(base64data, fun) {//封装的base64转换成临时文件路径的函数
				const base64 = base64data; //base64格式图片
				const time = new Date().getTime();
				const imgPath = wx.env.USER_DATA_PATH + "/addFriends" + time + "share_qrcode" + ".png"; //去掉data:image/png;base64,如果图片字符串不含要清空的前缀,可以不执行下行代码.
				const imageData = base64.replace(/^data:image\/\w+;base64,/, "");
				const file = wx.getFileSystemManager();
				file.writeFileSync(imgPath, imageData, "base64");
				fun(imgPath);
			},

其实整个wx.showShareImageMenu会拉起保存相册按钮,所以按道理也需要在调用这个api之前获取权限。这里封装了一下:参数fn就是获取权限后的函数文章来源地址https://www.toymoban.com/news/detail-667423.html

	getAuth(fn) {
				let that = this
				uni.getSetting({
					success(res) {
						if (!res.authSetting['scope.writePhotosAlbum']) {
							uni.authorize({
								scope: 'scope.writePhotosAlbum',
								success(res) {
									fn()
								},
								fail() {
									uni.showModal({
										content: '请允许相册权限,拒绝将无法正常保存图片',
										showCancel: false,
										success() {
											uni.openSetting({
												success(settingdata) {
													if (settingdata.authSetting['scope.writePhotosAlbum']) {} else {
														console.log('获取权限失败')
														that.$refs.uToast.show({
															type: 'error',
															message: `获取权限失败`,
															duration: 1200,
														})
													}
												}
											})
										}
									})
								}
							})
						} else {
							fn()
						}
					}
				})
			},

到了这里,关于uniapp 微信小程序 实现 将base64图片保存相册和转发分享微信好友功能记录 直接cv就能用!!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp 或小程序中保存网络图片及保存base64位图片的方法

    正常网络图片或本地图片可以使用 uni.downloadFile 或者 uni.getImageInfo api进行处理,最后使用 uni.saveImageToPhotosAlbum 进行处理, 保存base64图片需要使用 uni.getFileSystemManager().writeFile 写入文件,成功后调用 uni.saveImageToPhotosAlbum getImageInfo downloadFile ** 注意:使用此方法要删除掉返回数据

    2024年02月12日
    浏览(28)
  • 微信小程序常见图片格式转base64图片

    1、在utils文件下新建一个auth.js文件(随便取一个名字,你开心就行),在里面添加以下代码 如果是网络图片需要先使用wx.downloadFile({...})下载之后才可进行转换,本地的则直接转换即可你可根据具体需求修改代码,不要受此处代码影响。 2、在你需要使用的地方引入

    2024年02月06日
    浏览(34)
  • 微信小程序 本地图片和base64图片相互转换

    wx.chooseImage === 从本地相册选择图片或使用相机拍照 wx.getFileSystemManager() === 获取全局唯一的文件管理器 wx.getFileSystemManager().readFile === 读取本地文件内容 wx.base64ToArrayBuffer() === 将 Base64 字符串转成 ArrayBuffer 对象 wx.downloadFile === 下载文件资源到本地 从手机上选择图片转base64 网络

    2024年02月03日
    浏览(35)
  • 微信小程序中无法显示base64图片

    在微信小程序中展示图片信息时,后端返回的数据中的图片地址位base64 在小程序进行图片渲染后,发现有一部分的图片不能成功显示,直接为空白,但是在调试器里查看图片地址已经注入进 src 里面了,尝试将图片地址复制出来用浏览器打开,发现可以正常显示 图片在浏览器

    2024年02月12日
    浏览(38)
  • uniapp(微信小程序/支付宝小程序) - 最新解决canavs绘制海报、二维码图片等不显示问题,在uniapp小程序开发中使用canavs制作base64图片在真机运行时空白不显示(详细解决方法)

    在uniapp微信小程序 | uniapp支付宝小程序中,详解canavs技术绘制图像后在真实手机上运行不显示的问题,解决uniapp安卓苹果ios运行小程序后二维码/海报无法加载和展示,完美解决兼容问题、图片太大画不出来、加载失败等。支持保存到相册中或长按保存。 很多教程都无效,本

    2024年04月25日
    浏览(38)
  • uniapp+vue3+vant-weapp运行到微信小程序中绘制海报,将画布中绘制base64格式的图片以及长按进行图片的分享和下载

    对于uniapp绘制海报,遇到的难点就是将bas64格式的图片绘制上去,试了很多方式,终于找到了不错的方法, 先将其下载到本地,再进行绘制,以下就是 完整的代码 海报的内容可以根据自己的需求自行更改 ## 下面有一个测试base64格式的图片,可用替换成自己的实际路径 ## 长按

    2024年02月21日
    浏览(85)
  • 微信小程序uni-app图片和base64相互转换

    以上代码仅供参考,具体实现细节和样式可以根据需求自行调整。 需要完整源码的朋友,希望你能点赞+收藏+评论,然后私信我即可~ 如果教程中有不懂的地方,可添加学习会员小助手咨询(微信:mifankeji77)

    2024年02月14日
    浏览(34)
  • 【uniapp踩坑记】——微信小程序转发&保存图片

    关于微信小程序转发保存图片 已经好多年没写博客了,最近使用在用uniapp开发一个移动版管理后台,记录下自己踩过的一些坑 微信小程序图片转发保存,依赖小程序的转发api—— wx.showShareImageMenu(Object object) 通过调用这个api能触发如下弹窗 ![在这里插入图片描述] (https://img

    2024年04月15日
    浏览(26)
  • uniapp 将base64字符串保存为图片、Word、Excel、音频、视频等文件

     uniapp 将base64字符串保存为图片、Word、Excel、音频、视频等文件 index.vue,复制运行此代码看效果,支持Android、iOS 参考文档: 1、uniapp中拿到base64转blob对象,或base64转bytes字节数组,io操作写入字节流文件bytes 2、录音文件与Base64编码相互转换的方法 3、关于base64保存为文件 4、

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包