功能简介:苹果手机离开app界面一分钟,或者熄屏一分钟。如果开启手势密码锁,未开启指纹密码锁回到app界面时会出现手势密码解锁界面。
已解决问题:已实现可以设置四个点进行手势解锁,找到第一个点的中点坐标,第八个点与第一个点的相对坐标。利用press-moveto-release-perform方法进行手势锁的设置。实际路径为第1个点-第4个点-第5个点-第8个点,我觉着可能是从第1个点无法直接滑到第8个点导致的。不过恰巧也解决了我想要设置四个点的需求。
未解决问题:因为appium已经不支持press-moveto-moveto-release-perform方法,即多个moveto,在app上实现四个点进行指纹解锁完全是功能探索实现上的一次巧合,并非从根本上解决了这个问题。
import io.appium.java_client.touch.offset.PointOption;
public List getLocationn(IOSElement button){
int startX = button.getLocation().getX();//获取元素的起始点x坐标
int startY = button.getLocation().getY();//获取元素的起始点y坐标
int height = button.getSize().getHeight();//获取元素的高
int width = button.getSize().getWidth();//获取元素的宽
int x = startX+width/2;
int y = startY+height/2;
List<Integer>al = new ArrayList<Integer>();
al.add(x);
al.add(y);
return al;
}
这段代码是为了获得每个点的中心坐标
public void paintPwd() {
List<IOSElement> UI = findElementsByName("circle normal");
int x1 = getlocationn(UI.get(0)).indexOf(0);
int y1 = getlocationn(UI.get(0)).indexOf(1);
int x2 = getlocationn(UI.get(7)).indexOf(0);
int y2 = getlocationn(UI.get(7)).indexOf(1);
TouchAction go = new TouchAction(driver);
go.press(PointOption.point(x1-0,y1-0))
.moveTo(PointOption.point(x2-x1,y2-y1)).release().perform();
}
这段代码就是实现手势解锁的过程,结果如下
image.png
这仅仅只是实现了功能,希望大家有解决不能连续moveto的问题的根本方法的话多多交流。
网友评论