模拟操作

## swipeEx(x1, y1, x2, y2, duration) >w 非官方接口 仿真随机带曲线滑动: 一般用于过水平滑块,刷视频滑动等 ```JavaScript swipeEx(100, 150, 300, 160, random(600,1000)); //从起点(100, 150)随机耗时600-1000毫秒滑动到终点(300, 160) //仿真随机带曲线滑动 //qx, qy, zx, zy, time 代表起点x,起点y,终点x,终点y,过程耗时单位毫秒 function swipeEx(qx, qy, zx, zy, time) { try { var xxy = [time]; var point = []; var dx = [] dx[0] = {"x": qx,"y": qy}; dx[1] = {"x": random(qx - 100, qx + 100),"y": random(qy, qy + 50)}; dx[2] = {"x": random(zx - 100, zx + 100),"y": random(zy, zy + 50),}; dx[3] = {"x": zx,"y": zy}; for (let i = 0; i < 4; i++) point.push(dx[i]) for (let i = 0; i < 1; i += 0.08) { xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)] xxy.push(xxyy); } if(isAndroid7) gesture.apply(null, xxy); } catch (error) { log('[错误]swipeEx',error.message + '\n\r' + error.stack); } }; function bezier_curves(cp, t) { var cx = 3.0 * (cp[1].x - cp[0].x); var bx = 3.0 * (cp[2].x - cp[1].x) - cx; var ax = cp[3].x - cp[0].x - cx - bx; var cy = 3.0 * (cp[1].y - cp[0].y); var by = 3.0 * (cp[2].y - cp[1].y) - cy; var ay = cp[3].y - cp[0].y - cy - by; var tSquared = t * t; var tCubed = tSquared * t; var result = {"x": 0,"y": 0}; result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x; result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y; return result; }; ``` ## 拉出通知栏 ```js //表示从位置(500, 10)滑动到位置(500, 1000), 持续两秒 swipe(500, 10, 500, 1000, 2000); //方法1 notifications() //方法2 quickSettings() //方法3(下拉通知栏到底) ``` ## 双指捏合 ```js setScreenMetrics(1080, 1920); gestures([500, [800, 300], [500, 1000]], [500, [300, 1500], [500, 1000]]); ``` ## 三指捏合 ```js "auto"; setScreenMetrics(1080, 1920); //如果你使用的是MIUI,此脚本运行后会出现桌面多屏幕编辑 home(); sleep(1500); gestures([350, [800, 300], [500, 1000]], [350, [300, 1500], [500, 1000]], [350, [300, 300], [500, 1000]]); ``` ## 三指下滑 ```js "auto"; /** * 同时模拟三个手势: * 从(300, 400)到(300, 1400) * 从(600, 400)到(600, 1400) * 从(900, 400)到(900, 1400) * 每一个的时长都为350毫秒 */ gestures([350, [300, 400], [300, 1400]], [350, [600, 400], [600, 1400]], [350, [900, 400], [900, 1400]] ); ``` ## 心形手势 ```js "auto"; toast("开启开发者选项-指针位置或者在画画软件才能查看效果"); setScreenMetrics(1080, 1920); var points = [10000]; var interval = 0.1; var x0 = 600; var y0 = 1000; var a = 120; for(var t = 0; t < 2 * Math.PI; t += interval){ var x = x0 + a * (2 * Math.cos(t) - Math.cos(2 * t)); var y = y0 + a * (2 * Math.sin(t) - Math.sin(2 * t)); points.push([parseInt(x), parseInt(y)]); } gesture.apply(null, points); ```