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传入的高度和android中dp高度不一样,为2倍的关系,所以传入100即为50,如果需要全屏,那么使用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及更高版本