1***@qq.com
1***@qq.com
  • 发布:2018-07-20 23:24
  • 更新:2020-01-16 11:40
  • 阅读:5924

封装了一个H5+的截屏后保存至系统相册的函数

分类:HTML5+
void save(successCB[,errorCB,fileName,imgID,overwrite,format,quality,clip]);

使用说明:

使用前需要等plusready事件发生后才能正常使用,否则可能会报错。

参数说明:

successCB:Function,成功回调函数 必填
errorCB :Function,失败回调函数
fileName :String ,文件名 不需后缀名。 默认当前时间戳
imgID :String ,原生图片ID。默认当前时间戳
overwrite :Boolean ,是否覆盖。默认为true
format :String ,保存的格式。默认PNG
quality :Number ,保存质量。值为1-100,1最低,100最高,默认50
clip :Object ,指定截屏区域。默认{top:'0px',left:'0px',width:'100%',height:'100%'}

具体代码,已上传附件

欢迎大佬指正

var save = function(successCB,errorCB,fileName,imgID,overwrite,format,quality,clip){  
        errorCB     =  errorCB   || function(){};  
        fileName    =  fileName  || Date.parse( new Date());  
        imgID           =    imgID       || String(Date.parse( new Date()));  
        overwrite =  overwrite || true;  
        format      =  format    || 'png';  
        quality     =  quality   || 50;  
        clip            =  clip      || {top:'0px',left:'0px',width:'100%',height:'100%'};  

        var self = plus.webview.currentWebview();  
        var bitmap = new plus.nativeObj.Bitmap(imgID);  

        //绘制截图  
        self.draw(bitmap,function(){  
                // 保存Bitmap图片  
         bitmap.save('_doc/'+fileName+'.'+format, {overwrite: overwrite,format:format,quality:quality,clip:clip}  
            , function(i) {  
                        //保存到系统相册  
                        plus.gallery.save(i.target,function(d){  
                                //销毁Bitmap图片  
                                bitmap.clear();  
                                successCB({success:'success',details:d});  
                        }, function(e){  
                                //销毁Bitmap图片  
                                bitmap.clear();  
                                errorCB({error:'图片保存至相册失败',details:e});  
                        });  
                }, function(e) {  
                        bitmap.clear();  
                        errorCB({error:'图片保存失败',details:e});  
                }  
            );  

        },function(e){  
                errorCB({error:'截屏绘制失败',details:e});  
        });  
}  
6 关注 分享
DCloud_heavensoft 江户川林柯南 w***@163.com kvker大前端 9***@qq.com skysowe

要回复文章请先登录注册

落花时节

落花时节

重新发,排版有问题
_________________________________________
```
captureScreen ({ page, successCB, errorCB, fileName, imgID, overwrite, format, quality, clip }) {
errorCB = errorCB || function() {};
fileName = fileName || Date.parse(new Date());
imgID = imgID || String(Date.parse(new Date()));
overwrite = overwrite || true;
format = format || 'png';
quality = quality || 50;
clip = clip || {
top: '0px',
left: '0px',
width: '100%',
height: '100%'
};
var self = page.$getAppWebview();

var bitmap = new plus.nativeObj.Bitmap(imgID);

//绘制截图
self.draw(bitmap, function() {
console.log(clip)
// 保存Bitmap图片
bitmap.save('_doc/' + fileName + '.' + format, {
overwrite: overwrite,
format: format,
quality: quality,
clip: clip
}, function(i) {
//销毁Bitmap图片
bitmap.clear();
successCB({
msg: '临时图片保存成功, 使用后建议手动删除临时图片',
detail: i
})
}, function(e) {
//销毁Bitmap图片
bitmap.clear();
errorCB({
msg: '临时图片保存失败, 使用后建议手动删除临时图片',
detail: e
});
});
}, function(e) {
errorCB({
msg: '截屏绘制失败',
detail: e
});
});
}
```
2020-01-16 11:40
落花时节

落花时节

以下是我修改了的,可参考
——————————————————————
captureScreen ({ page, successCB, errorCB, fileName, imgID, overwrite, format, quality, clip }) {
errorCB = errorCB || function() {};
fileName = fileName || Date.parse(new Date());
imgID = imgID || String(Date.parse(new Date()));
overwrite = overwrite || true;
format = format || 'png';
quality = quality || 50;
clip = clip || {
top: '0px',
left: '0px',
width: '100%',
height: '100%'
};
var self = page.$getAppWebview();

var bitmap = new plus.nativeObj.Bitmap(imgID);

//绘制截图
self.draw(bitmap, function() {
console.log(clip)
// 保存Bitmap图片
bitmap.save('_doc/' + fileName + '.' + format, {
overwrite: overwrite,
format: format,
quality: quality,
clip: clip
}, function(i) {
//销毁Bitmap图片
bitmap.clear();
successCB({
msg: '临时图片保存成功, 使用后建议手动删除临时图片',
detail: i
})
}, function(e) {
//销毁Bitmap图片
bitmap.clear();
errorCB({
msg: '临时图片保存失败, 使用后建议手动删除临时图片',
detail: e
});
});
}, function(e) {
errorCB({
msg: '截屏绘制失败',
detail: e
});
});
}
2020-01-16 11:39
落花时节

落花时节

建议手动传入参数 page,然后 var self = page.$getAppWebview();;
2020-01-16 11:15
f***@126.com

f***@126.com

fileName 是从那边拿到的呢?
2019-06-27 20:07
7***@qq.com

7***@qq.com

改变指定截屏区域就加载失败呢
2019-04-25 10:36
1***@qq.com

1***@qq.com

ios为什么没有反应呢
2019-01-18 09:56
1***@qq.com

1***@qq.com

请教下 裁剪区域是不是要用百分比来控制 iOS和安卓是否兼容呢
2018-08-24 00:50