suspensionWindow

init createWindow updateWindow

概述

你从未用过的全新版本 2.0.0版本升级后,使用系统悬浮窗权限和一个service来实现,基本属性保留,但是实现方式完全改变。具体细节请详细阅读文档 此模块封装了Android手机上悬浮窗口的实现,可以实现一个悬浮在所有应用程序,桌面上的窗口。例如360手机加速球,酷狗音乐的桌面歌词,都是通过悬浮窗口做到的,在APP退出到后台时,仍然可以使用。(如果使用1.0.0版本,可以根据https://community.apicloud.com/bbs/thread-153528-1-1.html调用)使用此模块注意事项。 1.APP中使用此模块需要自定义loader或者云编译

2.当前越来越多的手机系统对悬浮窗做了权限管理,国内的android环境更是一团糟糕,使用getAppOps方法可以获取到当前APP悬浮窗是否有显示权限。如果没有,需要引导用户去手动打开悬浮窗权限。本次更新中createWindow方法会自动判断是否有权限,如果没有,会自动打开权限管理页面。因为每个系统的版本和型号不同,无法做到统一和100%,目前我自己测试的几部手机都是可以的。getAppOps也是如此.目前针对android4.0.3以上版本,6.0的动态权限,和8 9等版本测试来看都正常,如果使用中有异常,请联系我一起讨论

3.悬浮窗口的权限是系统高级权限,所以能显示在最上层,理论上权限仅次与电话权限。因此,不建议开启多个悬浮窗口。因此使用者设置一个全局变量在apiready中初始化

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

init

初始化

init()

可用性

Android系统

getAppOps

getAppOps(callback(ret))

callback(ret)

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

示例代码

  1. sup.getAppOps(function(res) {
  2. alert(JSON.stringify(res));
  3. });

可用性

Android系统

createWindow

创建一个悬浮窗口

createWindow({params},callback(ret,err))

x:100 窗口距离屏幕左边的距离

y:100 窗口距离屏幕上边的距离

w:200 窗口的宽度

h:200 窗口的高度

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

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

style : {

callback(ret,err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. ret: {
  3. code: 200, //200表示正常 201为点击事件回调
  4. msg: '创建成功'
  5. },
  6. err:{
  7. code: 400.
  8. msg: '参数异常'
  9. }
  10. }

示例代码

  1. x : 0,
  2. y : 0,
  3. w : 80,
  4. h : 80,
  5. slid : 'yes',
  6. style : {
  7. textSize : 15,
  8. raduis : 40,
  9. // bgImg : 'widget://image/bg.png',
  10. bgColor : '#50FFFFFF',
  11. color : '#FFFFFF'
  12. }
  13. }, function(res,err) {
  14. alert(JSON.stringify(res));

可用性

Android系统

show

显示悬浮窗

show()

示例代码

Android系统

updateWindow

更新悬浮窗 updateWindow({params},callback(ret,err))

params

参数和createWindow相同如果需要更新文本,只传text即可

示例代码

  1. sup.updateWindow({
  2. x: 100,
  3. y: 100,
  4. w: 200,
  5. h: 200,
  6. slid: 'yes',
  7. text: '99%',
  8. style: {
  9. radius: 50,
  10. bgColor: '#0000ff',
  11. color: '#00ffff'
  12. }
  13. }, function(res, err) {
  14. alert(JSON.stringify(res));

可用性

Android系统

隐藏悬浮窗

示例代码

Android系统