新生代吗喽
新生代吗喽
  • 发布:2019-07-09 10:36
  • 更新:2019-07-09 17:32
  • 阅读:1219

#插件需求# 能否实现屏幕截图,点击按钮截取屏幕中的某块区域

分类:uni-app

2019-07-09 10:36 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

可以试一下canvas

  • 新生代吗喽 (作者)

    谢谢,看到了这个new plus.nativeObj.Bitmap('test'); 应该可以

    2019-07-09 11:06

  • 回梦無痕

    回复 新生代吗喽: plusAPI截图应该是截取当前webview的,貌似没有办法截取其中一部分的。

    2019-07-09 13:42

新生代吗喽

新生代吗喽 (作者) - 码农

贴一下源码吧,还是不能截取某块区域,设置clip也无效,望大神指点


captureWebview() {
// #ifdef APP-PLUS
const ws = this.$mp.page.$getAppWebview();
// 这一步很重要,刚还是一直使用plus.webview.currentWebview()获取当前屏幕,一直白屏,看到这里
// (https://uniapp.dcloud.io/api/window/window?id=getappwebview) 才明白过来
const bitmap = new plus.nativeObj.Bitmap(Date.parse(new Date()));
const fileName = Date.parse(new Date());
// 将webview内容绘制到Bitmap对象中
ws.draw(
bitmap,
function() {
bitmap.save(
'_doc/poster' + fileName + '.' + 'jpg',
{ overwrite: false, format: 'jpg', quality: 50},
function(i) {
uni.saveImageToPhotosAlbum({
filePath: i.target,
success: function() {
uni.showToast({
title: '图片保存成功',
icon: 'none'
});
}
});
},
function(e) {
bitmap.clear();
errorCB({ error: '图片保存失败', details: e });
}
);
},
function(e) {
console.log('截屏绘制图片失败:' + JSON.stringify(e));
},
{
check: true, // 设置为检测白屏
clip: { top:'50px',left:'0px',width:'100%',height:'100%' } // 设置截屏区域
}
);
// #endif
}

该问题目前已经被锁定, 无法添加新回复