【发布时间】:2021-06-09 10:17:07
【问题描述】:
TL;DR
AutoInput 不会点击带有 ID 的 HTML 按钮,即使 EasySetup 看到 ID 并建议它。
背景
我正在制作一个基于 HTML 的棋盘游戏计时器,我想连接一个便宜的蓝牙遥控器以允许结束当前回合、通过一轮等。遥控器发送 VolumeUp,我希望使用 Tasker 和 AutoInput 捕获并重定向到我计时器上按钮上的单击操作。
问题
自动输入点击操作超时。如果我将其更改为使用按钮的文本而不是 ID 来查找按钮,那么它可以工作。不幸的是,“动作-播放-暂停”按钮会根据按钮是“继续游戏”按钮还是“暂停游戏”按钮来更改文本。 (id保持不变)
到目前为止我所做的尝试
SGT PlayPause (this does not work)
A1: AutoInput Action [
Configuration:Type: Id
Value: action-play-pause
Action : Click Timeout (Seconds):1 Structure Output (JSON, etc):On Continue Task After Error:On
]
A2: Flash [ Text:%errmsg Long:Off ] If [ %errmsg Set ]
SGT Primary (this works)
A1: AutoInput Action [
Configuration:Type: Text
Value: End Turn
Action : Click Timeout (Seconds):1 Structure Output (JSON, etc):On Continue Task After Error:On
]
A2: Flash [ Text:%errmsg Long:Off ] If [ %errmsg Set ]
如果您想自己尝试一下,我在这里设置了一个非常简单的 HTML 页面,其中包含这些按钮:https://parakoos.github.io/
就是这样的按钮:
<button id="action-primary" type="button" onclick="alert('Turn Ended')">End Turn</button>
<button id="action-secondary" type="button" onclick="alert('Round Passed')">Pass</button>
<button id="action-play-pause" type="button" onclick="alert('Play Pause')">Play Pause</button>
真正奇怪的是,操作配置是使用 EasySetup 模式设置的,单击按钮可以正确识别 ID 字段并建议我使用它。只是,当我实际触发动作时,它永远不会真正找到它。
考虑的替代方案
如果我无法让 Tasker 根据 ID 单击按钮,是否有办法获取按钮的当前文本(基于 ID),然后在变量中使用该文本进行单击操作?
或者,如果我可以将 VolumeUp 命令转换为“Enter”按键,那么我可以在我的应用程序中聆听这些命令并对它们做出反应。 (事实上我已经有了。)但我不知道如何使用 Tasker 模拟 Enter 按键。
谁能解释一下这种情况?我将不胜感激。
【问题讨论】: