- Global - 全局对象
- Automator - 自动化
- AutoJs6 - 本体应用
- App - 通用应用
- Color - 颜色
- Image - 图像
- OCR - 光学字符识别
- Barcode - 条码
- QR Code - 二维码
- Keys - 按键
- Device - 设备
- Storage - 储存
- File - 文件
- Engine - 引擎
- Task - 任务
- Module - 模块
- Plugins - 插件
- Toast - 消息浮动框
- Notice - 消息通知
- Console - 控制台
- Shell
- Shizuku
- Media - 多媒体
- Sensor - 传感器
- Recorder - 记录器
- Timer - 定时器
- Thread - 线程
- Continuation - 协程
- Event - 事件监听
- Dialog - 对话框
- Floaty - 悬浮窗
- Canvas - 画布
- UI - 用户界面
- Web - 万维网
- HTTP
- Base64
- Crypto - 密文
- OpenCC - 中文转换
- Internationalization - 国际化
- Standardization - 标准化
- E4X
- UiSelector - 选择器
- UiObject - 控件节点
- UiObjectCollection - 控件集合
- UiObjectActions - 控件节点行为
- WebSocket
- EventEmitter - 事件发射器
- ImageWrapper - 包装图像类
- App - 应用枚举类
- Color - 颜色类
- Version - 版本工具类
- Polyfill - 代码填泥
- Arrayx - Array 扩展
- Numberx - Number 扩展
- Mathx - Math 扩展
- Glossaries - 术语
- HttpHeader - HTTP 标头
- HttpRequestMethods - HTTP 请求方法
- MimeType - MIME 类型
- NotificationChannel - 通知渠道
- Data Types - 数据类型
- Omnipotent Types - 全能类型
- Storage - 存储类
- AndroidBundle
- AndroidRect
- CryptoCipherOptions
- CryptoKey
- CryptoKeyPair
- ConsoleBuildOptions
- HttpRequestBuilderOptions
- HttpRequestHeaders
- HttpResponseBody
- HttpResponseHeaders
- HttpResponse
- InjectableWebClient
- InjectableWebView
- NoticeOptions
- NoticeChannelOptions
- NoticePresetConfiguration
- NoticeBuilder
- Okhttp3HttpUrl
- OcrOptions
- Okhttp3Request
- OpenCVPoint
- OpenCVRect
- OpenCVSize
- OpenCCConversion
AutoJs6 文档 - 6.6.4
悬浮窗 (Floaty)#
此章节待补充或完善...
Marked by SuperMonster003 on Oct 22, 2022.
floaty模块提供了悬浮窗的相关函数, 可以在屏幕上显示自定义悬浮窗, 控制悬浮窗大小、位置等.
悬浮窗在脚本停止运行时会自动关闭, 因此, 要保持悬浮窗不被关闭, 可以用一个空的setInterval来实现, 例如:
setInterval(()=>{}, 1000);
floaty.window(layout)#
layout
{ xml } | { View } 悬浮窗界面的XML或者View
指定悬浮窗的布局, 创建并显示一个悬浮窗, 返回一个FloatyWindow
对象.
该悬浮窗自带关闭、调整大小、调整位置按键, 可根据需要调用setAdjustEnabled()
函数来显示或隐藏.
其中layout参数可以是xml布局或者一个View, 更多信息参见ui模块的说明.
例子:
var w = floaty.window(
<frame gravity="center">
<text id="text">悬浮文字</text>
</frame>
);
setTimeout(()=>{
w.close();
}, 2000);
这段代码运行后将会在屏幕上显示悬浮文字, 并在两秒后消失.
另外, 因为脚本运行的线程不是UI线程, 而所有对控件的修改操作需要在UI线程执行, 此时需要用ui.run
, 例如:
ui.run(function(){
w.text.setText("文本");
});
有关返回的FloatyWindow
对象的说明, 参见下面的FloatyWindow
章节.
floaty.rawWindow(layout)#
layout
{ xml } | { View } 悬浮窗界面的XML或者View
指定悬浮窗的布局, 创建并显示一个原始悬浮窗, 返回一个FloatyRawWindow
对象.
与floaty.window()
函数不同的是, 该悬浮窗不会增加任何额外设施(例如调整大小、位置按钮), 您可以根据自己需要编写任何布局.
而且, 该悬浮窗支持完全全屏, 可以覆盖状态栏, 因此可以做护眼模式之类的应用.
var w = floaty.rawWindow(
<frame gravity="center">
<text id="text">悬浮文字</text>
</frame>
);
w.setPosition(500, 500);
setTimeout(()=>{
w.close();
}, 2000);
这段代码运行后将会在屏幕上显示悬浮文字, 并在两秒后消失.
有关返回的FloatyRawWindow
对象的说明, 参见下面的FloatyRawWindow
章节.
floaty.closeAll()#
关闭所有本脚本的悬浮窗.
FloatyWindow#
悬浮窗对象, 可通过FloatyWindow.{id}
获取悬浮窗界面上的元素. 例如, 悬浮窗window上一个控件的id为aaa, 那么window.aaa
即可获取到该控件, 类似于ui.
window.setAdjustEnabled(enabled)#
enabled
{ boolean } 是否启用悬浮窗调整(大小、位置)
如果enabled为true, 则在悬浮窗左上角、右上角显示可供位置、大小调整的标示, 就像控制台一样; 如果enabled为false, 则隐藏上述标示.
window.setPosition(x, y)#
设置悬浮窗位置.
window.getX()#
返回悬浮窗位置的X坐标.
window.getY()#
返回悬浮窗位置的Y坐标.
window.setSize(width, height)#
设置悬浮窗宽高.
window.getWidth()#
返回悬浮窗宽度.
window.getHeight()#
返回悬浮窗高度.
window.close()#
关闭悬浮窗. 如果悬浮窗已经是关闭状态, 则此函数将不执行任何操作.
被关闭后的悬浮窗不能再显示.
window.exitOnClose()#
使悬浮窗被关闭时自动结束脚本运行.
FloatyRawWindow#
原始悬浮窗对象, 可通过window.{id}
获取悬浮窗界面上的元素. 例如, 悬浮窗window上一个控件的id为aaa, 那么window.aaa
即可获取到该控件, 类似于ui.
window.setTouchable(touchable)#
touchable
{ Boolean } 是否可触摸
设置悬浮窗是否可触摸, 如果为true, 则悬浮窗将接收到触摸、点击等事件并且无法继续传递到悬浮窗下面;如果为false, 悬浮窗上的触摸、点击等事件将被直接传递到悬浮窗下面. 处于安全考虑, 被悬浮窗接收的触摸事情无法再继续传递到下层.
可以用此特性来制作护眼模式脚本.
var w = floaty.rawWindow(
<frame gravity="center" bg="#44ffcc00"/>
);
w.setSize(-1, -1);
w.setTouchable(false);
setTimeout(()=>{
w.close();
}, 4000);
window.setPosition(x, y)#
设置悬浮窗位置.
window.getX()#
返回悬浮窗位置的X坐标.
window.getY()#
返回悬浮窗位置的Y坐标.
window.setSize(width, height)#
设置悬浮窗宽高.
特别地, 如果设置为-1, 则为占满全屏;设置为-2则为根据悬浮窗内容大小而定. 例如:
var w = floaty.rawWindow(
<frame gravity="center" bg="#77ff0000">
<text id="text">悬浮文字</text>
</frame>
);
w.setSize(-1, -1);
setTimeout(()=>{
w.close();
}, 2000);
window.getWidth()#
返回悬浮窗宽度.
window.getHeight()#
返回悬浮窗高度.
window.close()#
关闭悬浮窗. 如果悬浮窗已经是关闭状态, 则此函数将不执行任何操作.
被关闭后的悬浮窗不能再显示.
window.exitOnClose()#
使悬浮窗被关闭时自动结束脚本运行.