缘起:项目上有一个生成二维码展示,并且能够将二维码保存到本地相册的需求
使用方法:plus.nativeObj.Bitmap();
mui.init();
mui.plusReady(function(){
plusReady()
})
var plusReady = function(){
plus.nativeUI.showWaiting();
var src = $("#barcode").attr("src")//base64字符串
bitmapSavePic(src)
};
function bitmapSavePic(src){
var bm = new plus.nativeObj.Bitmap("barcode")//path: ( String ) 可选 Bitmap对象自动加载图片的地址
bm.loadBase64Data( src, bmloadSuccessCB, bmloadErrorCB );//加载base64为数据到bm实例对象
console.log(bm)
var path ="_doc/project_barcode.jpg";
var options = {"overwrite":true,"format":"jpg","quality":50}
bm.save( path, options, bmSaveSuccessCB, bmSaveErrorCB );//将图片保存到指定的路径(仅支持本地文件系统)
//保存到相册后,回收Bitmap图片内存
bm.recycle();
}
var bmloadSuccessCB = function (e){
console.log("加载base64数据成功")
}
var bmloadErrorCB = function (err){
console.log("加载base64数据失败")
console.log(err)
}
var bmSaveSuccessCB = function (e){
console.log(e)
console.log("保存成功")
console.log("保存地址:"+e.target)
saveToGallery(e.target)
}
var bmSaveErrorCB = function (error){
plus.nativeUI.toast("保存失败")
console.log("code:"+error.code+";msg:"+error.message);
}
function saveToGallery(path){
console.log(path)
plus.gallery.save( path, function(e){
var successI18n = $("#successI18n").html();
plus.nativeUI.toast(successI18n)
console.log(JSON.stringify(e));
},function(err){
var failedI18n = $("#failedI18n").html();
plus.nativeUI.toast(err.message+failedI18n)
console.log("保存到相册失败:"+JSON.stringify(err));
});
}
这段代码有反映有兼容问题.这个本人没有测试过,还望各位见谅.能用的就用吧
7 个评论
要回复文章请先登录或注册
1***@qq.com
1***@qq.com
j***@163.com
sssuxin
8***@qq.com (作者)
h***@163.com
a***@gmail.com