请选择 进入手机版 | 继续访问电脑版
帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
9
帖子
0
勋章
5634
Y币

【模块示例】screenClip 模块示例demo

[复制链接]
发表于 2019-9-27 16:36:26
screenClip 模块封装了屏幕截图的功能,用户可加拖动选择截图的区域,生成的图片可指定保存路径,也可保存到本地相册。注意:用户点击已选截图区域则保存图片并取消本次截图,点击非已选区域则直接取消本次截图。
另外不支持截取视频画面

模块文档地址:screenClip
模块使用示例:

open接口:
  1. var screenClip = api.require('screenClip');
  2.         screenClip.open({
  3.             bg: '#00E5EE',
  4.             cutFrame: {
  5.                 x: 100, //(可选项)数字类型;截图区域左上角点坐标;默认:10
  6.                 y: 100, //(可选项)数字类型;截图区域左上角点坐标;默认:128
  7.                 w: 200, //(可选项)数字类型;截图区域的宽;默认:当前屏幕宽减二十
  8.                 h: 200 //(可选项)数字类型;截图区域的高;默认:w
  9.             },
  10.             save: {
  11.                 album: true, //(可选项)布尔类型;是否保存到系统相册;默认:false
  12.                 imgPath: 'fs://img/', //(可选项)字符串类型;保存的文件路径,不传则不保存,若路径不存在文件夹则创建此目录
  13.                 imgName: 'ade.png' //(可选项)字符串类型;保存的图片名字,不传则不保存,支持png和jpg格式,若不指定格式,则默认png
  14.             }
  15.         }, function(ret) {
  16.             alert(JSON.stringify(ret));

  17.         })

复制代码
效果图:

注意:点击截屏框内就会保存截图区域,点击其他区域会取消截图, 截图区域可以拖动,但是大小不能改变
fnscreenShot接口:
  1. var screenClip = api.require('screenClip');
  2.         screenClip.screenShot({
  3.             rect: {
  4.                 x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
  5.                 y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
  6.                 w: 320, //(可选项)数字类型;模块的宽度;默认:屏幕宽度
  7.                 h: 500 //(可选项)数字类型;模块的高度;默认:w屏幕高度
  8.             },
  9.             album: true, //(可选项)布尔类型;是否保存到系统相册;默认:false
  10.             imgPath: "fs://img/", //(可选项)字符串类型;保存的文件路径,不传则不保存,若路径不存在文件夹则创建此目录
  11.             imgName: 'adexss.png' //(可选项)字符串类型;保存的图片名字,不传则不保存,支持png和jpg格式,若不指定格式,则默认png

  12.         }, function(ret) {
  13.             if (ret.status) {
  14.                 alert(JSON.stringify(ret));
  15.             }
  16.         })
复制代码
提醒:screenShot接口如果不传rect参数会默认截全屏,如果传递rect参数则会直接保存那块区域的截屏到指定位置
这是我设置rect后的效果(width320,height:500)








本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
12
帖子
3
勋章
5492
Y币
7
帖子
0
勋章
22
Y币
  screenClip.screenShot({
                      rect:{
                        x:0,
                        y:0,
                        wapi.offset(con).w,
                        hapi.offset(con).h,
                      },
                      album: true,
                      ingpath:"fs://",
                      imgName: api.pageParam.content.slice(2,23)+'.jpg',

                  },function( ret, err ){
                      if( ret.status ){
                          console.warn(JSON.stringify( ret ) );
                      }else{
                          console.warn(JSON.stringify( err ) );
                      }
                  });

截屏区域没有作用,还是全屏

调试 输出了

{"code":1} at result.html : 82
{"status":true} at result.html : 80
{"code":1} at result.html : 82

回调了3次,fs下也没有获得截屏
7
帖子
0
勋章
22
Y币
本帖最后由 libaoo 于 2019-10-23 09:46 编辑

  screenClip.screenShot({
                      rect:{
                        x:0,
                        y:0,
                        w:  $api.offset(con).w,
                        h:   $api.offset(con).h,
                      },
                      album: true,
                      imgPath:"fs://",
                      imgName: api.pageParam.content.slice(2,23)+'.jpg',

                  },function( ret, err ){
                      if( ret.status ){
                          console.warn(JSON.stringify( ret ) );
                      }else{
                          console.warn(JSON.stringify( err ) );
                      }
                  });
回调显示
{"status":true} at result.html : 79
{"code":1} at result.html : 81
{"status":true} at result.html : 79

截屏 没有按设置的区域进行截屏。
这里为何回调3次,即便xian相册保存一次,fs下一次,也只有2次啊。是不是区域截屏有错误?
9
帖子
0
勋章
5634
Y币
  var screenClip = api.require('screenClip');
        screenClip.screenShot({
            rect: {
                x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
                y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
                w: 320, //(可选项)数字类型;模块的宽度;默认:屏幕宽度
                h: 200 //(可选项)数字类型;模块的高度;默认:w屏幕高度
            },
            album: true,
            imgPath: api.fsDir,
            imgName: '99988.png'
        }, function(ret, err) {
            if (ret.status) {
                alert(JSON.stringify(ret));
            } else {
                alert(JSON.stringify(err));
            }
        });
按照我这个写 api.fsDir路径自己打印一下
9
帖子
0
勋章
5634
Y币
libaoo 发表于 2019-10-23 08:41
screenClip.screenShot({
                      rect:{
                        x:0,

最新版已经修复
2
帖子
0
勋章
102
Y币
本帖最后由 世博 于 2019-12-4 11:14 编辑

不传rect参数,调用截屏功能!var screenClip = api.require('screenClip');
var imgPath = api.fsDir;
var imgName = 'test.png';
screenClip.screenShot({
        imgPath:imgPath,
        imgName:imgName,
    },function(ret,err){
        if (ret.status) {
            alert(JSON.stringify(ret));
        }
    });



1
帖子
0
勋章
6
Y币
ios手机fnscreenShot 截屏后截取的内容会显示在页面左上角?这个怎么解决?截图前

截图后


  1. screenClip.screenShot({
  2.                                                         rect: {
  3.                                                                         x: 40, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
  4.                                                                         y: offsetTop, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
  5.                                                                         w: width, //(可选项)数字类型;模块的宽度;默认:屏幕宽度
  6.                                                                         h: height //(可选项)数字类型;模块的高度;默认:w屏幕高度
  7.                                                         },
  8.                                                         album: true, //(可选项)布尔类型;是否保存到系统相册;默认:false
  9.                                                         imgPath: "fs://img/", //(可选项)字符串类型;保存的文件路径,不传则不保存,若路径不存在文件夹则创建此目录
  10.                                                         imgName: 'tepaiShare.png' //(可选项)字符串类型;保存的图片名字,不传则不保存,支持png和jpg格式,若不指定格式,则默认png

  11.                                         }, function(ret) {
  12.                                                         if (ret.status) {


  13.                                                         }
  14.                                         })
复制代码


本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
1
帖子
0
勋章
7
Y币
用screenShot ,跳出提示框 “将开始截取您的屏幕上显示的所有内容”,点击立即开始,小米的闪退了,华为的可以。
有什么方法让它不跳出提示框?
1
帖子
0
勋章
7
Y币
用screenShot ,跳出提示框 “将开始截取您的屏幕上显示的所有内容” 取消或立即开始,请问大神,有没有不提示的
12下一页
您需要登录后才可以回帖 登录

本版积分规则