悬浮窗

# 说明 悬浮窗模块函数主要是跟悬浮窗相关联 悬浮窗模块的对象前缀是floaty,例如 floaty.requestFloatViewPermission()这样调用 ## floaty.requestFloatViewPermission() 请求悬浮窗权限 @return bool true为成功 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); //展示main.xml文件的视图,并且返回安卓原生原生的对象 let view = floaty.showFloatXml(tag,"main.xml",100,100); logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } sleep(2000) //更新尺寸 floaty.updateSize(tag,800,1800) sleep(2000) //更新X坐标 floaty.updateX(tag,100) sleep(2000) //更新X坐标 floaty.updateY(tag,100) sleep(2000) //更新不可触摸状态 floaty.touchable(tag,false) sleep(10000) //更新可以触摸状态 floaty.touchable(123,true) } main(); ``` ## floaty.showFloatXml() 显示一个XML悬浮窗 @param tag 悬浮窗的标签 @param xml xml路径或者内容 @param x 起始X位置 @param y 起始Y位置 @return {View} android的View对象 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); //展示main.xml文件的视图,并且返回安卓原生原生的对象 let view = floaty.showFloatXml(tag,"main.xml",100,100); logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } } main(); ``` ## floaty.showFloatView() 显示一个View悬浮窗 @param tag 悬浮窗的标签 @param view android的View对象 @param x 起始X位置 @param y 起始Y位置 @return {View} android的View对象 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); importPackage(android.widget) importPackage(android.graphics) let tv = new TextView(context); tv.setText("TEST"); tv.setBackgroundColor(Color.parseColor("#336699")) let view = floaty.showFloatView(tag,tv,100,100); logd(view); } main(); ``` ## floaty.updateX() 设置悬浮窗X坐标 @param tag 悬浮窗的标签 @param x X位置 @return {bool} true成功 false 失败 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); //展示main.xml文件的视图,并且返回安卓原生原生的对象 let view = floaty.showFloatXml(tag,"main.xml",100,100); logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } sleep(2000) //更新尺寸 floaty.updateSize(tag,800,1800) sleep(2000) //更新X坐标 floaty.updateX(tag,100) sleep(2000) //更新X坐标 floaty.updateY(tag,100) sleep(2000) //更新不可触摸状态 floaty.touchable(tag,false) sleep(10000) //更新可以触摸状态 floaty.touchable(123,true) } main(); ``` ## floaty.updateY() 设置悬浮窗Y坐标 @param tag 悬浮窗的标签 @param y Y位置 @return {bool} true成功 false 失败 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); //展示main.xml文件的视图,并且返回安卓原生原生的对象 let view = floaty.showFloatXml(tag,"main.xml",100,100); logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } sleep(2000) //更新尺寸 floaty.updateSize(tag,800,1800) sleep(2000) //更新X坐标 floaty.updateX(tag,100) sleep(2000) //更新X坐标 floaty.updateY(tag,100) sleep(2000) //更新不可触摸状态 floaty.touchable(tag,false) sleep(10000) //更新可以触摸状态 floaty.touchable(123,true) } main(); ``` ## floaty.updateSize() 设置悬浮窗大小 @param tag 悬浮窗的标签 @param w 宽度 @param h 高度 @return {bool} true成功 false 失败 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); //展示main.xml文件的视图,并且返回安卓原生原生的对象 let view = floaty.showFloatXml(tag,"main.xml",100,100); logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } sleep(2000) //更新尺寸 floaty.updateSize(tag,800,1800) sleep(2000) //更新X坐标 floaty.updateX(tag,100) sleep(2000) //更新X坐标 floaty.updateY(tag,100) sleep(2000) //更新不可触摸状态 floaty.touchable(tag,false) sleep(10000) //更新可以触摸状态 floaty.touchable(123,true) } main(); ``` ## floaty.close() 关闭悬浮窗 @param tag 悬浮窗的标签 @return {bool} true成功 false 失败 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); //展示main.xml文件的视图,并且返回安卓原生原生的对象 let view = floaty.showFloatXml(tag,"main.xml",100,100); logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } sleep(2000) //更新尺寸 floaty.updateSize(tag,800,1800) sleep(2000) //更新X坐标 floaty.updateX(tag,100) sleep(2000) //更新X坐标 floaty.updateY(tag,100) sleep(2000) //更新不可触摸状态 floaty.touchable(tag,false) sleep(10000) //更新可以触摸状态 floaty.touchable(123,true) } main(); ``` ## floaty.touchable() 设置悬浮窗可触摸 @param touchable 是否可触摸 true 代表可触摸,false不能触摸 @return {bool} true成功 false 失败 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); //展示main.xml文件的视图,并且返回安卓原生原生的对象 let view = floaty.showFloatXml(tag,"main.xml",100,100); logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } sleep(2000) //更新尺寸 floaty.updateSize(tag,800,1800) sleep(2000) //更新X坐标 floaty.updateX(tag,100) sleep(2000) //更新X坐标 floaty.updateY(tag,100) sleep(2000) //更新不可触摸状态 floaty.touchable(tag,false) sleep(10000) //更新可以触摸状态 floaty.touchable(123,true) } main(); ``` ## floaty.focusable() 设置悬浮窗可聚焦(视图包含输入框需要聚焦才能进行输入) @param focusable 是否可聚焦 true 代表可聚焦,false不能聚焦 @return {bool} true成功 false 失败 ```js function main(){ let tag="123"; //关闭tag=123的浮窗 floaty.close(tag) //请求权限 let p = floaty.requestFloatViewPermission(1000) logd("是否有浮窗权限: "+p); if (!p) { loge("没有浮窗权限,终止执行"); return; } sleep(1000); //展示main.xml文件的视图,并且返回安卓原生原生的对象 let view = floaty.showFloatXml(tag,"main.xml",100,100); floaty.focusable(tag,true) logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } sleep(2000) //更新尺寸 floaty.updateSize(tag,800,1800) sleep(2000) //更新X坐标 floaty.updateX(tag,100) sleep(2000) //更新X坐标 floaty.updateY(tag,100) sleep(2000) //更新不可触摸状态 floaty.touchable(tag,false) sleep(10000) //更新可以触摸状态 floaty.touchable(123,true) } main(); ```