我想制作一个内部应用程序(不想把它放在AppStore上)。我有以下场景。
我将我的应用(说“XApp”)放在后台。现在,我在前台打开其他应用程序(说“YApp”)。现在,我想获得Xapp中YApp的当前元素hieararchy。我正在为Yapp提供开发配置文件/证书。
我只想要Element层次结构,几乎与我得到的相似,如果我运行UIAutomation of instruments并通过.js脚本抛出以下命令。
UIATarget.localTarget().frontMostApp().logElementTree();
简而言之,我需要与上述命令相同的结果,但无需通过USB电缆将设备连接到任何PC。没关系,如果是使用私人api或越狱设备。正如我已经提到的那样,我不想把它放在App Store上。
修改
我可以找到我自己的应用程序的元素层次结构,即对于XApp本身,通过运行以下代码,
-(void) showViewHeirarchy:(UIView*)v
{
for (UIView *vv in v.subviews)
{
NSLog(@"SubView:%@",[vv description]);
NSLog(@"count:%lu",(unsigned long)vv.subviews.count);
if (vv.subviews.count>0)
{
[self showViewHeirarchy:vv];
}
}
}
在viewDidLoad方法完成执行后(不在viewDidLoad中)调用上面的函数,并调用它如:
UIWindow *v=[[UIApplication sharedApplication] keyWindow];
[self showViewHeirarchy:v];
所以,任何人都可以知道如何从其他应用程序(在后台运行)获得一个应用程序的UIApplication对象,以便我的工作变得更容易。