ios远程看对方手机屏幕
好酷屋教程网小编为您收集和整理了ios远程看对方手机屏幕的相关教程:今天给大家带来的是基于苹果官方提供的UI测试框架实现的非越狱机器远程控制实现原理。▌XCUITestXCUITest是Aplle自Xcode7开始引入的自动化测试框架,而且在Xcode8中,原先的UI
今天给大家带来的是基于苹果官方提供的UI测试框架实现的非越狱机器远程控制实现原理。
▌XCUITest
XCUITest是Aplle自Xcode7开始引入的自动化测试框架,而且在Xcode8中,原先的UIAutomation框架废弃无法再用。
相比较UIAutomation,XCUITest使用简便程度有了很大提高。
选择UITestCase,会生成一个Case文件如下:
#import
@interface testUI : XCTestCase
@end
@implementation testUI
– (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
self.continueAfterFailure = NO;
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
[[[XCUIApplication alloc] init] launch];
// In UI tests it’s important to set the initial state – such as interface orientation – required for your tests before they run. The setUp method is a good place to do this.
}
– (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
– (void)testExample {
// Use recording to get started writing UI tests.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
@end
根据提示在testExample部分修改添加代码。
此时可以使用xcode自带的录制功能,点击鼠标使得光标处于testExample的方法下,再点击红色的录制按钮。
项目会自动编译部署到指定的设备上(真机或模拟器均可),并自动启动。此时操作app的同时,Xcode会记录操作并自动转化成代码。
也可以手动根据自己需求调整或新增操作代码。
完毕后点击测试即可直接执行自动化测试。
▌设备控制
第一次执行测试会在设备端桌面生成一个类似xcuitesdemoUITests的APP,该APP无法执行执行,只能通过xcode的test启动。
启动时会有个瞬间的黑屏,然后app进入后台,同时启动待测APP,而后依次开始各项测试任务。
这里启动的哪个APP是由UITest项目的配置决定的,也就是说如果工程拥有多个APP,可以选择启动不同的APP。
当然也可以选择None,但启动测试的时候会出现以下的问题。
默认的XCUIApplication头文件中,只有如下2个方法:
@interface XCUIApplication : XCUIElement
/*!
* Launches the application. This call is synchronous and when it returns the application is launched
* and ready to handle user events. Any failure in the launch sequence is reported as a test failure
* and halts the test at this point. If the application is already running, this call will first
* terminate the existing instance to ensure clean state of the launched instance.
*/
– (void)launch;
/*!
* Terminates any running instance of the application. If the application has an existing debug session
* via Xcode, the termination is implemented as a halt via that debug connection. Otherwise, a SIGKILL
* is sent to the process.
*/
– (void)terminate;
但是可以从私有API的Header里能挖掘出比较多的方法。
+ (instancetype)appWithPID:(pid_t)processID;
– (void)dismissKeyboard;
– (BOOL)setFauxCollectionViewCellsEnabled:(BOOL)arg1 error:(id *)arg2;
– (void)_waitForViewControllerViewDidDisappearWithTimeout:(double)arg1;
– (void)_waitForQuiescence;
– (void)terminate;
– (void)_launchUsingXcode:(BOOL)arg1;
– (void)launch;
– (id)application;
– (id)deion;
– (id)lastSnapshot;
– (id)query;
– (void)clearQuery;
– (void)resolveHandleUIInterruption:(BOOL)arg1;
– (id)initPrivateWithPath:(id)arg1 bundleID:(id)arg2;
– (id)init;
通过InitPrivateWithPath方法可以以下述方法启动任意其他已安装的APP,并对其他APP进行操作。
比如下述代码可以启动safari,并打开http://mtc.baidu.com/
NSString *appBundleID = @”com.apple.mobilesafari”;
XCUIApplication* app = [[XCUIApplication alloc] initPrivateWithPath:nil bundleID:appBundleID];
[app launch];
[app.otherElements[@”URL”] tap];
[app typeText:@”mtc.baidu.comn”];
▌WebDriverAgent
WebDriverAgent(https://github.com/facebook/WebDriverAgent)是Facebook基于XCUITest推出的iOS的移动测试框架,支持目前市面上所有iOS9以上的设备。
该框架通过在设备端启动一个HTTP Server提供一系列API接受操作指令来代替固定的操作代码,除了启动应用、点击和滑动页面元素,WebDriverAgent还提供截图、页面元素查询等功能,iOS的appium测试框架就是基WebDriverAgent实现的。
▌远程控制iOS设备
基于上述技术,我们把功能具体化成一个Web服务。
通过轮询的方式获取当前屏幕内容,并将屏幕上的鼠标点击以及滑动操作转化成具体的操作指令,最终即可达到通过Web页面控制手机设备的效果。
以上就是好酷屋教程网小编为您收集和整理的iOS,远程控制,远程连接相关内容,如果对您有帮助,请帮忙分享这篇文章^_^
本文来源: https://www.haoku5.com/shuma/63eaeb28f2254d3f2d080852.html
相关推荐
热门专题
电脑出现选择一个选项疑难解答(电脑出现只有一个选择)
1.电脑出现只有一个选择我的电脑右下角的选择输入法的图标没有了?怎么把它调出来?我的电脑右下角的选择输入法的图标没有了,怎么把它调出来,进入控制面板设置一下就可以了。如图示,在控制面板中进入区域和语平板电脑搜狗键盘怎么移动图片(怎么移动搜狗悬浮键盘)
1.怎么移动搜狗悬浮键盘3当出现键盘悬浮的情况,这是因为不小心开启了悬浮键盘的功能,首先在某个聊天界面点击输入框打开键盘。2/3点击键盘的左上角按钮,该按钮图案可能是键盘图案、工具箱图案、搜狗标志图三环耳机插电脑(三接头耳机怎么插电脑)
1.三接头耳机怎么插电脑如图所示,电脑耳机插口有两个,每个插孔下面有标识。比如,粉色的下面是个话筒话标志,浅绿色的是耳机🎧,有的电脑上有三个插孔,也就是在中间位置有一个混音插孔,一般是黑色的,就是电脑连接网络受限制是什么原因(电脑联网显示网络受限)
1.电脑联网显示网络受限如提示网络连接受限制或无连接,可按以下方法操作:1、打开电脑“控制面板”,点击“网络连接”,选择本地连接,右键点击本地连接图标后选“属性”,在“常规”选项卡中双击“Inter电脑全屏截图怎么弄(电脑上如何全屏截图)
1.电脑上如何全屏截图 方法一:直接使用键盘中的PrintScrSysrq键实现全屏截图PrintScreenSysRq截图键 使用方法非常简单,只需要按下该键后即可完成全屏截图,然后我们天天飞车电脑壁纸(天天飞车电脑壁纸超清)
1.天天飞车电脑壁纸超清汉字中隔壁的壁字是一个常用字,是墙体和陡峭的山涯、某些物体的表面,可以可以组成的词语有:1、墙壁,一堵墙体的表面。2、戈壁,戈壁滩寸草不生,全是沙石。3、壁画,是在墙壁、山涯电脑怎么抓屏(联想电脑怎么抓屏)
1.联想电脑怎么抓屏截图方法有多种:1、按“PrintScreenSysRq”,(在F12右边)全屏截图,就是抓整个屏幕;2、按Alt+PrintScreenSysRq,截取当前苹果电脑键盘电源(苹果电脑键盘电源灯闪烁是什么意思)
1.苹果电脑键盘电源灯闪烁是什么意思那可能是灯的问题,我的Mac键盘灯是白色的,你去售后问问呗。如果不是键盘脏的话,目测只能是灯的问题了吧,盖膜的应该没什么影响2.苹果电脑键盘指示灯一直闪如果您电脑保修期一般多长时间(机械革命电脑保修期一般多长时间)
1.机械革命电脑保修期一般多长时间按国家规定整机保一年,配件三年保修2.机械革命电脑保修期一般多长时间啊第1步,查询电脑过没过保修期的方法是:第2步,1、翻转电脑,查看底部铭牌上的主机编号并21中关村报价:内存上升CPU下降
英特尔处理器的掉了下来,22nm是主要的降价,跌20-30元;32nmg850,i5-2320降价,5-25元。AMD处理器价格继续下跌。顶32nm//3870kAPUa8-3850是8