Thanox 创建情景模式:从零开始写第一条规则
目标:写一条能跑通的入门规则
这里写一个最简单但实用的规则:当你切换前台应用时,Toast 显示当前应用的包名。
这条规则主要用于调试——你可以在切换 app 时随时看到当前 app 的包名,对写其他规则很有帮助。
步骤一:打开情景模式编辑器
Thanox → 情景模式(Profile),点击 "+" 新建模式。Thanox 提供了两种编写方式:
- JSON 文本编辑:直接粘贴 JSON 字符串
- 表单编辑(部分版本支持):可视化填写各字段
推荐 JSON 方式,因为更灵活,也更容易分享和备份。
步骤二:写 JSON
复制下面的 JSON 代码粘贴进去:
[
{
"name": "Front Pkg Toast",
"description": "应用切换时,显示当前前台应用的包名",
"priority": 2,
"delay": 0,
"condition": "frontPkgChanged == true",
"actions": [
"ui.showShortToast(activity.getFrontAppPackage());"
]
}
]
步骤三:保存并启用
保存后,这条规则就生效了。此时每当你切换一个 app(比如从桌面打开微信,或从微信切到浏览器),屏幕底部都会弹出一个 Toast,显示类似:
com.tencent.mm
参数逐个解释
name
"name": "Front Pkg Toast"
规则名称,英文(官方文档提示:多个模式不能重名,否则会被覆盖)。随便起,自己能认出来就行。
description
"description": "应用切换时,显示当前前台应用的包名"
任意描述。写中文英文都可以,纯备注用。
priority 和 delay
"priority": 2,
"delay": 0
priority:规则优先级。当多个规则同时被触发时,priority 决定执行顺序。简单场景设 1 或 2 就行。delay:触发后延迟多久执行动作,单位毫秒。设 0 = 立即执行。
condition
"condition": "frontPkgChanged == true"
触发条件。frontPkgChanged 是 Thanox 在应用切换时发布的 facts 参数,类型是 Boolean。这条条件的意思是:"当应用切换这个事件发生时(frontPkgChanged == true)"。
条件使用 MVEL 表达式语法,支持 ==、!=、&&(与)、||(或)、括号等。
actions
"actions": [
"ui.showShortToast(activity.getFrontAppPackage());"
]
执行动作列表。每个动作是一条 MVEL 调用。这里调用了:
uihandle 的showShortToast()方法,用于显示短 Toast 提示activityhandle 的getFrontAppPackage()方法,返回当前前台应用的包名
两条可以嵌套——把 activity.getFrontAppPackage() 的返回值作为参数传给 ui.showShortToast()。
语法注意:双引号要转义
如果你的 action 里需要用到字符串参数,双引号必须用 \ 转义:
"actions": [
"ui.showShortToast(\"正在杀死微信\");"
]
这是因为 JSON 字符串本身也是用双引号包围的,里面的双引号必须转义。
下一步
现在你能跑通一条最简单的规则了。接下来进入 Facts 触发条件大全 和 Handle 动作能力大全,了解 Thanox 到底能监听哪些事件、能做哪些事情。
小提示:情景模式规则引擎的官方文档写得非常详细,本文的 facts 和 handle 页面整理了最常用的部分。完整列表请参考 Thanox 官方的情景模式文档。