情况:需要点击1-8个不同坐标,
例如
a = 1.1
b = 2.2
c = 3.3 一直到h,
如何实现:在执行脚本前时,弹出输入框可以直接输入a-h,实现点击对应坐标?
function main()
html = [[
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
</head>
<body>
<!-- 输入框设置-->
<input id="a" type="text" value="坐标a"/>
<input id="b" type="text" value="坐标b"/>
<input id="c" type="text" value="坐标c"/>
<!-- 按钮区域,此处必须写,否则无法关闭动态UI-->
<div style="padding-top: 10px">
<!-- onOk()和onCancel()需要和JS内的function onOk() function onCancel()对应 -->
<button onclick="onOk()">确定</button>
<button onclick="onCancel()">取消</button>
</div>
<script>
function onOk() {
// 获取输入框内的值
var data = {
a: document.getElementById("a").value,
b: document.getElementById("b").value,
c: document.getElementById("c").value,
};
// touchelf.return()为触摸内置函数, 此函数将关闭UI, 并将数据发送给sys.ui.show(), 作为其返回值
touchelf.return(
JSON.stringify({
type: "ok",
data: data,
})
);
}
function onCancel() {
touchelf.return(JSON.stringify({ type: "cancel" }));
}
</script>
</body>
</html>
]]
--将html写入文件
flag,err = file.write("/var/touchelf/input.html",html);
res = sys.ui.show("/var/touchelf/input.html",100,100,400,500)
sys.log(res)
--json转table
t = codec.json.decode(res)
--用,分割 坐标填写方式 100,100
a = t.data.a:split(',')
b = t.data.b:split(',')
c = t.data.c:split(',')
sys.log(a)
--点击坐标.延迟什么的自己加吧
touch.tap(a[1],a[2]);
touch.tap(b[1],b[2]);
touch.tap(c[1],c[2]);
end
function main()
html = [[
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
</head>
<body>
<!-- 输入框设置-->
<input id="a" type="text" value="坐标a"/>
<input id="b" type="text" value="坐标b"/>
<input id="c" type="text" value="坐标c"/>
<input id="d" type="text" value="坐标d"/>
<input id="e" type="text" value="坐标e"/>
<input id="f" type="text" value="坐标f"/>
<input id="g" type="text" value="坐标g"/>
<input id="h" type="text" value="坐标h"/>
<!-- 按钮区域,此处必须写,否则无法关闭动态UI-->
<div style="padding-top: 10px">
<!-- onOk()和onCancel()需要和JS内的function onOk() function onCancel()对应 -->
<button onclick="onOk()">确定</button>
<button onclick="onCancel()">取消</button>
</div>
<script>
function onOk() {
// 获取输入框内的值
var data = {
a: document.getElementById("a").value,
b: document.getElementById("b").value,
c: document.getElementById("c").value,
d: document.getElementById("d").value,
e: document.getElementById("e").value,
f: document.getElementById("f").value,
g: document.getElementById("g").value,
h: document.getElementById("h").value,
};
// touchelf.return()为触摸内置函数, 此函数将关闭UI, 并将数据发送给sys.ui.show(), 作为其返回值
touchelf.return(
JSON.stringify({
type: "ok",
data: data,
})
);
}
function onCancel() {
touchelf.return(JSON.stringify({ type: "cancel" }));
}
</script>
</body>
</html>
]]
--将html写入文件
flag,err = file.write("/var/touchelf/input.html",html);
res = sys.ui.show("/var/touchelf/input.html",100,100,400,500)
sys.log(res)
--json转table
t = codec.json.decode(res)
--用,分割 坐标填写方式 100,100
a = t.data.a:split('152,287')
b = t.data.b:split('372,297')
c = t.data.c:split('612,280')
d = t.data.d:split('160,555')
e = t.data.e:split('389,536')
f = t.data.f:split('616,555')
g = t.data.g:split('149,797')
h = t.data.h:split('373,804')
sys.log(a)
--点击坐标.延迟什么的自己加吧
while(i ~= 0xD5C631)
do
i = screen.getColor(392,408);
touch.tapRandom(a[1],a[2]);
touch.tapRandom(b[1],b[2]);
touch.tapRandom(c[1],c[2]);
touch.tapRandom(d[1],d[2]);
touch.tapRandom(e[1],e[2]);
touch.tapRandom(f[1],f[2]);
touch.tapRandom(g[1],g[2]);
touch.tapRandom(h[1],h[2]);
x, y = screen.findColor({0xF8DA87}, 90, 265, 316, 267, 318);--正常结束
if x ~= -1 and y ~= -1 then
touch.tapRandom(354, 1185, 15, 50, 1);--返回
sys.sleep(500);
end
x, y = screen.findColor({0xE3AD52}, 90, 378, 1147, 380, 1149);--取消转盘
if x ~= -1 and y ~= -1 then
touch.tapRandom(355, 1147, 15, 50, 1);
sys.sleep(500);
touch.tapRandom(354, 1185, 15, 50, 1);--返回
sys.sleep(500);
end
x, y = screen.findColor({0xF7D798}, 90, 436, 436, 438, 438);--取消宠物和商人
if x ~= -1 and y ~= -1 then
touch.tapRandom(515, 818, 15, 50, 1);
sys.sleep(500);
touch.tapRandom(354, 1185, 15, 50, 1);--返回
sys.sleep(500);
end
end
end
function main()
html = [[
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<!-- 加载UI框架 -->
<link
href="file:///var/touchelf/var/res/www/bootstrap/bootstrap.min.css"
rel="stylesheet"
/>
</head>
<body>
<div class="shadow-sm p-3 mb-5 bg-white rounded"
<!-- 单选框 -->
<div class="form-check form-check-inline">
<!-- value填写坐标的值 ,只需要修改这里即可-->
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="a" value="100,100" checked>
<label class="form-check-label" for="inlineRadio1">坐标a</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="b" value="100,200">
<label class="form-check-label" for="inlineRadio2">坐标b</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="c" value="200,200">
<label class="form-check-label" for="inlineRadio3">坐标c</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="d" value="200,300">
<label class="form-check-label" for="inlineRadio4">坐标d</label>
</div>
<!-- 按钮 -->
<div style="padding-top: 10px">
<button type="button" class="btn btn-primary" onclick="onOk()">
确定
</button>
<button type="button" class="btn btn-danger" onclick="onCancel()">
取消
</button>
</div>
</div>
<script>
// touchelf.return()为触摸内置函数, 此函数将关闭UI, 并将数据发送给sys.ui.show(), 作为其返回值
function onOk() {
touchelf.return(
JSON.stringify({
type: "ok",
// 单选框值
p: document.querySelector("input[type='radio']:checked").value
})
);
}
function onCancel() {
touchelf.return(JSON.stringify({ type: "cancel" }));
}
</script>
<!-- 加载框架JS -->
<!-- IOS路径 -->
<script
src="file:///var/touchelf/var/res/www/bootstrap/bootstrap.bundle.min.js">
</script>
</body>
</html>
]]
--将html写入文件
flag,err = file.write("/var/touchelf/input.html",html);
res = sys.ui.show("/var/touchelf/input.html",100,100,500,500)
sys.log(res)
--json转table
t = codec.json.decode(res)
point = t.p:split(',')
sys.log(point)
touch.tap(point[1],point[2]);
end
e大 我把整个辅助到下面了。但还是报错啊