suspensionWindow

来自于:开发者立即使用

概述

此模块封装了Android手机上悬浮窗口的实现,可以实现一个悬浮在所有应用程序,桌面上的窗口。例如360手机加速球,酷狗音乐的桌面歌词,都是通过悬浮窗口做到的,在APP退出到后台时,仍然可以使用。使用此模块注意事项。

1.APP中使用此模块需要自定义loader或者云编译

2.当前越来越多的收集系统对悬浮窗做了权限管理,使用getAppOps方法可以获取到当前APP悬浮窗是否有显示权限。如果没有,可以在手机设置中打开。否则悬浮窗只能在APP内部显示,退出到后台则无法显示。一般小米MI系统就是这样,需要手动开启显悬浮窗口

3.悬浮窗口的权限是系统高级权限,所以能显示在最上层,因此在创建实例的时候只会创建一个,下面的关闭方法可以看成是隐藏。因此,不建议开启多个悬浮窗口。关闭后可以再次打开上次的窗口。因此使用者设置一个全局变量在apiready中初始化

4.布局设计比较简单,只是打开一个内容区域,当然我们可以对此进行很多操作,去达到我们想要的效果,甚至可以直接去实现一个自定义样式的toast效果。

getAppOps

判断当前APP是否有在APP之外显示悬浮窗口的权限(如果为flase,可提示用户去打开此权限,否则悬浮窗只能在本APP内显示)

getAppOps(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    p: true      //布尔型;true||false,当前设备是否有在APP之外显示悬浮窗口的权限
}

示例代码

sup = api.require('suspensionWindow');
sup.getAppOps(function(res) {
    alert(JSON.stringify(res));
});

可用性

Android系统

可提供的1.0.0及更高版本

openSuspensionWin

开启一个悬浮窗口。(注意:当你一级开启一个悬浮窗口之后,再次调用此方法,即为修改一级开启的悬浮窗参数,你可以改变其中的绝大多数参数,包括大小,颜色,背景等等)

openSuspensionWin({params},callback(ret))

params

x:

  • 类型:数字
  • 描述:窗口距离屏幕左边的距离

y:

  • 类型:数字
  • 描述:窗口距离屏幕上边的距离

w:

  • 类型:数字
  • 描述:窗口的宽度

h:

  • 类型:数字
  • 描述:窗口的高度

(注意:测试发现js传入的xp高度和android中dp高度不一样,为2倍的关系,所以传入100即为20,如果需要全屏,那么使用api.winWidth*2即可)

text:

  • 类型:字符串类型
  • 描述:悬浮窗口中显示的文字信息

slid:

  • 类型:字符串类型
  • 描述:窗口滑动设置:yes=随意滑动,no=不可滑动,transverse=只允许横向滑动,portrait=只允许纵向滑动

style:

  • 类型:json
  • 描述:窗口滑动设置
  • 内部字段:
{
        textSize : 15, //文字的大小

        raduis : 40,//悬浮窗口的圆角大小

        bgImg : 'widget://image/bg.png',//背景图片

        bgColor : '#FFFFFF',//背景颜色 (注意:此处所有颜色参数可使用透明设置,例如: #50FFFFFF,前两位数字表示透明度(16进制的))

        color : '#FFFFFF'//文字颜色

}

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    action: "onclock"      //返回点击悬浮窗口事件
}

示例代码

sup = api.require('suspensionWindow');
sup.openSuspensionWin({
    x: 0,
    y: 0,
    w: 80,
    h: 80,
    slid: 'yes',
    text: '1%',
    style: {
        textSize: 15,
        raduis: 40,
        bgImg: 'widget://image/bg.png',
        bgColor: '#50FFFFFF',
        color: '#FFFFFF'
    }
}, function(res) {
    //alert(JSON.stringify(res));
});

可用性

Android系统

可提供的1.0.0及更高版本

setText

设置悬浮窗中文字信息

setText({params})

params

text:

  • 类型:字符串
  • 描述:'这里是文字' //设置要显示的文字

示例代码

sup.setText({
    text: '50%'
});

可用性

Android系统

可提供的1.0.0及更高版本

close

关闭/隐藏悬浮窗口

示例代码

sup.close();

可用性

Android系统

可提供的1.0.0及更高版本