回答
可以使用 Hamibot 提供的坐标滑动功能实现从屏幕底部 90% 的位置向上滑动到 60% 的位置。下面是一个示例脚本,使用 gesture
函数进行滑动操作:
// 文档地址 https://docs.hamibot.com/
var dw = device.width;
var dh = device.height;
// 计算起始和结束位置
var startX = dw / 2; // 屏幕中间 X 坐标
var startY = dh * 0.9; // 屏幕底部 90% 的 Y 坐标
var endX = dw / 2; // 屏幕中间 X 坐标
var endY = dh * 0.6; // 屏幕上方 60% 的 Y 坐标
// 执行滑动操作
gesture(1000, [startX, startY], [endX, endY]);
这段代码中:
- 使用
device.width
和device.height
获取设备的屏幕宽高。 - 起始位置为屏幕中间 X 坐标,Y 坐标是屏幕高度的 90%。
- 结束位置同样是屏幕中间 X 坐标,Y 坐标是屏幕高度的 60%。
- 使用
gesture
函数执行滑动动作,滑动持续时间为 1000 毫秒。
你可以根据需要调整滑动时间和坐标。
补充回答 1
如果 device.width
获取到的值为 0,通常是因为在调用它时设备尚未完成初始化。可以通过等待设备准备就绪后再获取屏幕宽高。
Hamibot 提供了确保设备准备好的方法,你可以在脚本开头加上延迟或检测设备状态,确保设备准备好后再执行后续代码。以下是一个解决方案:
// 文档地址 https://docs.hamibot.com/
// 等待设备就绪
auto.waitFor();
// 延迟一小段时间,确保设备信息加载完成
sleep(1000);
// 获取屏幕宽高
var dw = device.width;
var dh = device.height;
// 打印宽高用于调试
log("屏幕宽度: " + dw + ", 屏幕高度: " + dh);
// 如果宽度仍为 0,则尝试重新获取(可选)
if (dw === 0) {
log("屏幕宽度未正确获取,尝试重新获取...");
// 可以根据实际情况增加更多逻辑或者提示
}
注意事项:
- 确保脚本中已经添加了无障碍服务权限。
- 检查是否在正确的上下文中使用
device.width
,例如某些 API 需要脚本引擎完全加载后才能正常工作。 - 使用
auto.waitFor()
是必须的,否则可能无法正确获取设备状态。
如果问题仍然存在,可以尝试重启 Hamibot 或设备后再次运行脚本。
ℹ️ 本回答由 AI 生成,内容仅供参考