app应用base64图片保存到手机相册和分享到微信(uniapp)

最近做了一个含有二维码的海报到手机相册和分享到微信好友里面,图片是后端生成好的,传过来的格式是base64格式的,因为图片比较大,使用文档的保存和分享并没有什么用,有可能我用的不对吧,反正没有我想要的效果。

如何实现呢?我们先实现保存到手机相册在去实现分享哈。

安卓和ios都可以使用。机型我没有太多的去测试,反正我们公司的ios和安卓都可以。

一.base64图片保存到手机相册(封装)

export function base64DowImg(base64){// 创建一个Bitmap是原生图片对象const bitmap = new plus.nativeObj.Bitmap("test");return new Promise((resolve,reject)=>{// 使用loadBase64Data将base64字符串转换为bitmap文件对象bitmap.loadBase64Data(base64,()=>{const url = "_doc/" + new Date().getTime() + ".png";  // url为时间戳命名方式// 再调用bimap.save方法,将图片文件存入手机存储bitmap.save(url,{overwrite: true,  // 是否覆盖},(i)=>{//在这里使用文档说的保存到手机相册的方法uni.saveImageToPhotosAlbum({filePath: url,success: function() {resolve({code: 0,msg: '图片保存成功',filePath: url});bitmap.clear()},fail: function (err) {resolve({code: 1,msg: '图片保存失败',filePath: ''});}})},(e)=>{resolve({code: 1,msg: '图片保存失败',filePath: ''});bitmap.clear()})})})
}

没错就是这么简单,哈哈哈,其实记录一下只是给我自己做笔记,后台好ctrl+c和ctrl+v。到时候调用一下base64DowImg这个函数传一个base64图片就可以了,做到这里你的保存图片到手机相册就实现了,没有实现就是你传的base64图片有问题,反正我是实现了。

二.base64图片分享到微信好友(封装)

// 分享base64图片到微信
export function Base64ShareImg(base64){// 创建一个Bitmap是原生图片对象const bitmap = new plus.nativeObj.Bitmap("test");return new Promise((resolve,reject)=>{// 使用loadBase64Data将base64字符串转换为bitmap文件对象bitmap.loadBase64Data(base64,()=>{const url = "_share/" + new Date().getTime() + ".png";  // url为时间戳命名方式// 再调用bimap.save方法,将图片文件存入手机存储bitmap.save(url,{overwrite: true,  // 是否覆盖},(i)=>{//在这里使用文档说的分享的方法uni.share({provider: "weixin",scene: "WXSceneSession",type: 2,imageUrl: url,success: function (res) {resolve({code: 0,msg: '',filePath: url});},fail: function (err) {resolve({code: 1,msg: '图片分享失败',filePath: ''});}});},(e)=>{resolve({code: 1,msg: '图片分享失败',filePath: ''});})})})
}

对,没错,就是你所看到的,代码基本没啥区别,只是里面的保存换成了分享,没办法,uni.share图片使用base64会保存,我只能这样的修改一些,跟保存图片用法是一样的。

这些代码完全可以实现这两个功能,请大家复制的时候别复制少了。有用的话记得点赞!!!!不能白嫖!!!!!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部