-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathserver.html
More file actions
125 lines (117 loc) · 8.14 KB
/
server.html
File metadata and controls
125 lines (117 loc) · 8.14 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<!DOCTYPE html>
<html class="hairlines" style="font-size:37.5px">
<head>
<meta charset="utf-8">
<title>AppHost Remote Debugger</title>
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="yes" name="apple-touch-fullscreen">
<meta content="telephone=no,email=no" name="format-detection">
<meta name="screen-orientation" content="portrait">
<meta name="x5-orientation" content="portrait">
<meta name="viewport" content="initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
<link href="./server.css" rel="stylesheet" type="text/css" />
<link href="./renderjson.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="app">
<p class="w-welcome-slogan">欢迎使用 AppHost Remote Debugger</p>
<p class="c-welcome-desc">** 调试之前,首先打开一个 h5 页面 **</p>
<div class="c-garden">
<command-output></command-output>
<command-value></command-value>
</div>
<tool-panel></tool-panel>
</div>
<script type="text/x-template" id="command-output-template">
<div class="m-output" id="output">
<template v-for="(item, idx) in dataSource">
<div v-if="item.type === 'log'" class="m-output-result">
<div class="m-output-type">
<span class="w-em-seq">ɀ</span> {{item.message}}
</div>
<div v-bind:id="item.eid"></div>
</div>
<p v-else-if="item.type === 'console.log'" class="m-output-command"> ϡ <span class="w-eval-succ">{{item.message}}</span></p>
<p v-else-if="item.type === 'evalResult'" class="m-output-command"> 执行结果: <span class="w-eval-succ">{{item.message}}</span></p>
<p v-else-if="item.type === 'command'" class="m-output-command">
<span class="w-em-seq"> ➤ </span>{{item.message}}
</p>
<p v-else-if="item.type === 'error'" class="m-output-command"> 输入有误,错误: <span class="w-err-code">{{item.message}}</span></p>
<div v-else-if="item.type === 'help'" class="m-output-command">
<div class='w-example-title'>1. 调用 appHost 接口方式:</div>
<div class="w-help-code">window.appHost.invoke('startNewPage', {'url': 'http://you.163.com', 'title': 'title', 'type': 'push'});</div>
<div class='w-example-title'>2. 查看所有支持的 native 接口,输入如下;</div>
<div class="w-help-code">:list</div>
<div class='w-example-title'>3. 查看所有支持的 某个具体的接口,api doc, 如 `log` 接口,输入如下;</div>
<div class="w-help-code">:apropos log</div>
<div class='w-example-title'>4. 启动内置的 testcase,测试 API 接口实现是否正常,执行后会在手机端打开一个 测试页面;</div>
<div class="w-help-code">:testcase</div>
<div class='w-example-title'>5. 注入 weinre 脚本,需要重新打开页面。在本次启动中,只需要注入一次,后面打开的页面都会支持,即使这些页面不是你控制的</div>
<div class="w-help-code">:weinre http://10.12.0.0:8888/target/target-script-min.js#anonymous</div>
<div class='w-example-title'>5.1. 取消注入 weinre 脚本</div>
<div class="w-help-code">:weinre disable</div>
<div class='w-example-title'>6. 打开 navigation time line 统计,用来分析页面加载性能</div>
<div class="w-help-code">:timing</div>
<div class='w-example-title'>7. 在手机端的 webview 页面里执行脚本</
7DEC
div>
<div class="w-help-code">:eval document.cookie</div>
<div class='w-example-title'>8. 清除 WKWebview 里的 Cookie。注意:不是当前的 Cookie,而是 Cookie 管理器的 Cookie,下次访问才生效。</div>
<div class="w-help-code">:clearCookie</div>
</div>
<div v-else-if="item.type === 'history'" class="m-output-result">
<ol v-if="item.data.length > 0" class="c-command-history">
<template v-for="(command, index) in item.data">
<li v-on:click="useHistoryCommand" v-bind:data-command="command" class="w-history-item">▸ {{command}}</li>
</template>
</ol>
</div>
<div v-else-if="item.type === 'list'" class="m-output-result">
<template v-for="api in item.apis">
<p v-if="api.type === 'group'" class="w-api_list-group">{{api.value}}</p>
<span v-else class="w-api_list-api">{{api.value}}</span>
</template>
<p class="w-api_list-other">详细的 API 可以输入 `:apropos api`,如 `:apropos log` 查看详细接口说明、示例、描述</p>
</div>
<div v-else-if="item.type === 'apropos_item'" class="m-output-doc">
<p v-if="item.doc.discuss" class="w-doc-discuss">{{item.doc.discuss}}</p>
<div v-if="item.doc.param" class="w-doc-type_title">参数说明:</div>
<ul v-if="item.doc.param" class="w-doc-param-container">
<template v-for="(desc, name) in item.doc.param">
<li class="w-doc-param" ><span>{{name}}</span>: {{desc}}</li>
</template>
</ul>
<div v-if="item.doc.return" class="w-doc-return">
<span class="w-doc-type_title">参数说明:</span><br/>
{{item.doc.return}}
</div>
<div v-if="item.doc.code" class="w-doc-type_title">可执行代码示例:</div>
<div v-if="item.doc.code" class="w-doc-code">{{item.doc.code}}</div>
<div v-if="item.doc.error"class="w-err-code">{{item.doc.error}}</div>
<div v-if="item.doc.codeResult" class="w-doc-codeResult"><span class="w-doc-type_title">代码执行后期望:</span>{{item.doc.codeResult}}</div>
</div>
<p v-else> 未知参数</p>
</template>
</div>
</script>
<script type="text/x-template" id="command-value-template">
<div class="m-input">
<img class="w-env-icon j-mobile2pc" title="你现在输入的命令,全部在 webview 里执行,就像你能直接本地浏览器调试一样" style="display:none" src="./images/mobile to pc.png">
<img class="w-env-icon j-pc2mobile" title="现在处于远程调试模式,可接收特殊命令" src="./images/pc to mobile.png">
<input id="command" v-model="command" v-on:keyup.up="history(true);" v-on:keyup.down="history(false);" v-on:keyup.enter="submit" class="w-command" type="text" name="command" placeholder="输入命令,如. :help" />
<a id="run" class="w-command-run" ref="run" v-on:click="run" value="Run">Run</a>
</div>
</script>
<script type="text/x-template" id="tool-panel-template">
<div class="c-tool-panel">
<template v-for="(item, idx) in dataSource">
<div v-on:click="useTool" v-bind:data-action="item.action" v-bind:class="item.clsName" v-bind:title="item.title">{{item.text}}</div>
</template>
</div>
</script>
<script type="text/javascript" src="./renderjson.js" charset="utf-8"></script>
<script type="text/javascript" src="./vue.js" charset="utf-8"></script>
<script type="text/javascript" src="./components/tool-panel.js" charset="utf-8"></script>
<script type="text/javascript" src="./server.js" charset="utf-8"></script>
<script type="text/javascript" src="./profile/profiler_for_mac.js" async="true"></script>
<script type="text/javascript" src="./profile/pageTiming_for_mac.js" async="true"></script>
</body>
</html>