回答
你遇到的“点击不允许跳转第三方应用但仍跳转”的情况,通常由 Android 系统机制与 Hamibot 脚本执行方式共同导致。具体原因及解决方法如下:
常见原因
- 脚本直接调用 Intent:Hamibot 脚本中使用
app.startActivity()或shell("am start ...")会直接向系统发送启动请求,绕过 UI 弹窗。此时你看到的提示框仅为系统表层交互,实际跳转已由代码强制执行。 - 默认打开规则未清除:目标应用可能已被系统设置为“默认打开此类链接/协议”。即使点击“不允许”,系统仍会按默认规则执行跳转。
- 无障碍服务误触:若脚本开启了无障碍服务并包含自动点击逻辑,可能在弹窗出现时自动点击了“允许”“打开”或空白区域,导致跳转继续。
- 厂商系统定制:部分手机系统(如 MIUI、ColorOS、HarmonyOS)对应用跳转做了后台接管,弹窗仅作为提示,实际跳转逻辑不受单次点击限制。
解决方法
- 检查并调整脚本跳转方式
- 避免使用强制启动命令。若只需打开网页或通用链接,改用
app.openUrl()。 - 若必须使用
app.startActivity(),确保 Intent 参数准确,并在跳转前加入确认逻辑。
- 避免使用强制启动命令。若只需打开网页或通用链接,改用
- 清除系统默认打开设置
- 进入手机「设置」→「应用管理」→找到频繁跳转的目标应用→「默认打开」或「支持的链接」→点击「清除默认设置」。
- 排查无障碍自动点击逻辑
- 检查脚本中是否包含
click()、tap()或UiSelector().text("允许").click()等可能误触弹窗的代码。 - 若需拦截弹窗,可显式等待并点击“取消”或“不允许”:
// 文档地址 https://docs.hamibot.com/ if (text("不允许").exists()) { text("不允许").click(); } else if (text("取消").exists()) { text("取消").click(); }
- 检查脚本中是否包含
- 限制脚本作用范围
- 使用
auto.setMode("normal")或合理设置auto.waitFor()超时时间,避免无障碍服务在弹窗阶段持续扫描并误触。
- 使用
Hamibot 的跳转行为完全由脚本逻辑与系统权限共同决定。合理控制 Intent 调用、清理系统默认规则、并规范无障碍点击逻辑,即可避免非预期跳转。若问题仍持续,请提供手机系统版本、目标应用名称及触发跳转的脚本片段,以便进一步定位。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实