uniapp保存图片_2020-08-29 Uniapp APP端、小程序长按图片保存图片到本地相册(亲测可用)...

APP保存图片

// APP保存图片

savePhoto(url) {

// 先下载图片

uni.downloadFile({

url,

success: (res) => {

// 获取到图片本地地址后再保存图片到相册(因为此方法不支持远程地址)

uni.saveImageToPhotosAlbum({

filePath: res.tempFilePath,

success: () => {

uni.showToast({

title: "保存成功!",

});

},

fail: () => {

uni.showToast({

title: "保存失败",

});

},

});

},

});

},

小程序保存图片(授权后保存)

// 小程序保存图片

savePosterPath(url) {

uni.downloadFile({

url,

success: (resFile) => {

console.log(resFile, "resFile");

if (resFile.statusCode === 200) {

uni.getSetting({

success: (res) => {

if (!res.authSetting["scope.writePhotosAlbum"]) {

uni.authorize({

scope: "scope.writePhotosAlbum",

success: () => {

uni.saveImageToPhotosAlbum({

filePath: resFile.tempFilePath,

success: (res) => {

return uni.showToast({

title: "保存成功!",

});

},

fail: (res) => {

return uni.showToast({

title: res.errMsg,

});

},

complete: (res) => {},

});

},

fail: () => {

uni.showModal({

title: "您已拒绝获取相册权限",

content: "是否进入权限管理,调整授权?",

success: (res) => {

if (res.confirm) {

uni.openSetting({

success: (res) => {

console.log(res.authSetting);

},

});

} else if (res.cancel) {

return uni.showToast({

title: "已取消!",

});

}

},

});

},

});

} else {

uni.saveImageToPhotosAlbum({

filePath: resFile.tempFilePath,

success: (res) => {

return uni.showToast({

title: "保存成功!",

});

},

fail: (res) => {

return uni.showToast({

title: res.errMsg,

});

},

complete: (res) => {},

});

}

},

fail: (res) => {},

});

} else {

return uni.showToast({

title: resFile.errMsg,

});

}

},

fail: (res) => {

return uni.showToast({

title: res.errMsg,

});

},

});

},

补充:APP和小程序保存base64图片到本地的方法

saveBase64Img(base64) {

// #ifdef APP-PLUS

let imageStr = "data:image/png;base64," + base64;

// 保存到本地

let bitmap = new plus.nativeObj.Bitmap("goods_poster");

bitmap.loadBase64Data(

imageStr,

() => {

console.log("加载Base64图片数据成功");

bitmap.save(

"_doc/goods_poster.png",

{},

(i) => {

console.log("保存图片成功:" + JSON.stringify(i));

bitmap.clear();

},

(e) => {

onsole.log("保存图片失败:" + JSON.stringify(e));

bitmap.clear();

}

);

},

(e) => {

console.log("加载Base64图片数据失败:" + JSON.stringify(e));

bitmap.clear();

}

);

// #endif

// #ifdef MP

var fileManager = uni.getFileSystemManager();

fileManager.writeFile({

filePath: "/img.jpg", // 指定图片的临时路径

data: base64, // 要写入的文本或二进制数据

encoding: "base64", // 指定写入文件的字符编码

success: (res) => {

console.log("写入文件成功,文件路径信息为:", res);

转换本地路径成功后这里可以用上面的图片保存方法

},

file: (err) => {

console.log("写入文件失败", err);

},

});

// #endif

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值