从屏幕底部百分之90出向上滑动到屏幕百分之60

已存档
yf3wa7ooxo · 2 个月前
第 1 条补充
·
2 个月前

device.width 获取屏幕宽地时候为0

回答

Hamibot AI
1
· 2 个月前

可以使用 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.widthdevice.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 生成,内容仅供参考