/
ui.js
63 lines (38 loc) · 1.12 KB
/
ui.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//show ui
//controller
//by: AloneMonkey
ObjC.schedule(ObjC.mainQueue, function(){
const window = ObjC.classes.UIWindow.keyWindow();
const ui = window.recursiveDescription().toString();
send({ ui: ui });
});
ObjC.schedule(ObjC.mainQueue, function(){
const window = ObjC.classes.UIWindow.keyWindow();
const rootControl = window.rootViewController();
const control = rootControl['- _printHierarchy']();
send({ ui: control.toString() });
});
function handleMessage(message) {
var order = message.substring(0,1);
var command = '';
switch(order){
case 'n':
command = message.substring(2);
var view = new ObjC.Object(ptr(command));
var nextResponder = view.nextResponder();
nextResponder = new ObjC.Object(ptr(nextResponder));
var deep = 0;
var pre = '';
while(nextResponder){
pre += '-';
send({ ui: pre+'>'+nextResponder.toString()});
nextResponder = nextResponder.nextResponder();
nextResponder = new ObjC.Object(ptr(nextResponder));
}
break;
default:
send({ ui: 'error command' });
}
recv(handleMessage);
}
recv(handleMessage);