ms-vite-plugin 1.5.9 → 1.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/api/device.md +5 -9
- package/docs/api/global.md +2 -2
- package/docs/api/jbclear.md +291 -0
- package/docs/api/jbdevice.md +574 -0
- package/docs/api/jbdylib.md +219 -0
- package/docs/api/jbshell.md +59 -0
- package/docs/api/jbsystem.md +211 -0
- package/docs/api/jbvpn.md +219 -0
- package/docs/api/pip.md +50 -15
- package/docs/api/plist.md +137 -0
- package/docs/api/ui.md +114 -0
- package/docs/apicn/device.md +4 -8
- package/docs/apicn/global.md +2 -2
- package/docs/apicn/pip.md +50 -15
- package/docs/apicn/ui.md +114 -0
- package/docs/apilua/device.md +5 -9
- package/docs/apilua/global.md +2 -2
- package/docs/apilua/jbclear.md +313 -0
- package/docs/apilua/jbdevice.md +609 -0
- package/docs/apilua/jbdylib.md +231 -0
- package/docs/apilua/jbshell.md +63 -0
- package/docs/apilua/jbsystem.md +225 -0
- package/docs/apilua/jbvpn.md +233 -0
- package/docs/apilua/pip.md +53 -15
- package/docs/apilua/plist.md +153 -0
- package/docs/apilua/ui.md +117 -0
- package/docs/apipython/device.md +6 -8
- package/docs/apipython/g.md +1 -1
- package/docs/apipython/jbclear.md +288 -0
- package/docs/apipython/jbdevice.md +570 -0
- package/docs/apipython/jbdylib.md +215 -0
- package/docs/apipython/jbshell.md +61 -0
- package/docs/apipython/jbsystem.md +216 -0
- package/docs/apipython/jbvpn.md +231 -0
- package/docs/apipython/overview.md +1 -1
- package/docs/apipython/pip.md +52 -15
- package/docs/apipython/plist.md +152 -0
- package/docs/apipython/ui.md +118 -0
- package/docs/httpapi/api.md +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# VPN 模块 (JBVPN)
|
|
2
|
+
|
|
3
|
+
模块表是内置全局 `jbvpn`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
5
|
+
仅越狱包可用。免越狱包没有 `jbvpn`。
|
|
6
|
+
|
|
7
|
+
管理系统 VPN 配置:创建、列出、读取当前选中、选中、删除、连接、断开,以及读取当前选中配置的状态。类型支持 `L2TP`、`IPSec`、`IKEv2`。
|
|
8
|
+
|
|
9
|
+
`create` 必填显示名、类型和服务器。`select` / `remove` / `connect` 可传显示名,或 `list` 返回的 `id`。多条配置同名时不保证操作哪一条,精确操作请用 `id`。
|
|
10
|
+
|
|
11
|
+
`connect` / `disconnect` 返回 `true` 只表示已经开始,不表示已经连上或已经断开。用 `status` 看 `connected`。没有选中配置时,`connect()`、`disconnect()`、`status()` 失败。
|
|
12
|
+
|
|
13
|
+
## API 参考
|
|
14
|
+
|
|
15
|
+
### create - 创建一条系统 VPN 配置。
|
|
16
|
+
|
|
17
|
+
```lua
|
|
18
|
+
---@param config table
|
|
19
|
+
---@return boolean
|
|
20
|
+
function create(config) end
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**参数:**
|
|
24
|
+
|
|
25
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
26
|
+
| -------- | ------ | -------- | ------ | ------------------------------------- |
|
|
27
|
+
| `config` | `table` | 是 | - | 配置表。必填 `name`、`type`、`server` |
|
|
28
|
+
|
|
29
|
+
`config` 字段:
|
|
30
|
+
|
|
31
|
+
| 字段名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
32
|
+
| ----------------- | --------- | -------- | ------ | ------------------------------- |
|
|
33
|
+
| `name` | `string` | 是 | - | 显示名 |
|
|
34
|
+
| `type` | `string` | 是 | - | `L2TP` / `IPSec` / `IKEv2` |
|
|
35
|
+
| `server` | `string` | 是 | - | 服务器地址 |
|
|
36
|
+
| `account` | `string` | 否 | `""` | 账号 |
|
|
37
|
+
| `password` | `string` | 否 | `""` | 密码 |
|
|
38
|
+
| `secret` | `string` | 否 | `""` | 共享密钥。L2TP / IPSec 常用 |
|
|
39
|
+
| `group` | `string` | 否 | `""` | 群组名称 |
|
|
40
|
+
| `sendAllTraffic` | `boolean` | 否 | `true` | 是否发送所有流量 |
|
|
41
|
+
| `encryptionLevel` | `integer` | 否 | `1` | 加密级别 |
|
|
42
|
+
| `localId` | `string` | 否 | `""` | 本端标识。IKEv2 可用 |
|
|
43
|
+
| `remoteId` | `string` | 否 | `""` | 对端标识。IKEv2 可用 |
|
|
44
|
+
|
|
45
|
+
**返回值:**
|
|
46
|
+
|
|
47
|
+
| 类型 | 描述 |
|
|
48
|
+
| --------- | --------------- |
|
|
49
|
+
| `boolean` | 成功为 `true` |
|
|
50
|
+
|
|
51
|
+
**示例:**
|
|
52
|
+
|
|
53
|
+
```lua
|
|
54
|
+
local ok = jbvpn.create({
|
|
55
|
+
name = "Demo",
|
|
56
|
+
type = "L2TP",
|
|
57
|
+
server = "vpn.example.com",
|
|
58
|
+
account = "user",
|
|
59
|
+
password = "pass",
|
|
60
|
+
secret = "psk",
|
|
61
|
+
})
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### list - 列出当前系统 VPN 配置。
|
|
65
|
+
|
|
66
|
+
```lua
|
|
67
|
+
---@return table|nil
|
|
68
|
+
function list() end
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**返回值:**
|
|
72
|
+
|
|
73
|
+
| 类型 | 描述 |
|
|
74
|
+
| -------------- | --------------------------- |
|
|
75
|
+
| `table \| nil` | 配置列表;读失败返回 `nil` |
|
|
76
|
+
|
|
77
|
+
没有配置时是空表。每项含 `name`、`id`。
|
|
78
|
+
|
|
79
|
+
**示例:**
|
|
80
|
+
|
|
81
|
+
```lua
|
|
82
|
+
local items = jbvpn.list()
|
|
83
|
+
if items then
|
|
84
|
+
for _, item in ipairs(items) do
|
|
85
|
+
print(item.name, item.id)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### current - 读取当前选中的 VPN 配置。
|
|
91
|
+
|
|
92
|
+
没有选中配置返回 `nil`。
|
|
93
|
+
|
|
94
|
+
```lua
|
|
95
|
+
---@return table|nil
|
|
96
|
+
function current() end
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**返回值:**
|
|
100
|
+
|
|
101
|
+
| 类型 | 描述 |
|
|
102
|
+
| -------------- | ----------------------------------------- |
|
|
103
|
+
| `table \| nil` | 含 `name`、`id`;没有选中配置返回 `nil` |
|
|
104
|
+
|
|
105
|
+
**示例:**
|
|
106
|
+
|
|
107
|
+
```lua
|
|
108
|
+
local item = jbvpn.current()
|
|
109
|
+
if item then
|
|
110
|
+
print(item.name, item.id)
|
|
111
|
+
end
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### select - 选中一条 VPN 配置。
|
|
115
|
+
|
|
116
|
+
```lua
|
|
117
|
+
---@param nameOrId string
|
|
118
|
+
---@return boolean
|
|
119
|
+
function select(nameOrId) end
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**参数:**
|
|
123
|
+
|
|
124
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
125
|
+
| ----------- | -------- | -------- | ------ | ----------------------- |
|
|
126
|
+
| `nameOrId` | `string` | 是 | - | 显示名或 `list` 的 `id` |
|
|
127
|
+
|
|
128
|
+
**返回值:**
|
|
129
|
+
|
|
130
|
+
| 类型 | 描述 |
|
|
131
|
+
| --------- | --------------------- |
|
|
132
|
+
| `boolean` | 找到并选中为 `true` |
|
|
133
|
+
|
|
134
|
+
**示例:**
|
|
135
|
+
|
|
136
|
+
```lua
|
|
137
|
+
jbvpn.select("Demo")
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### remove - 删除一条 VPN 配置。
|
|
141
|
+
|
|
142
|
+
```lua
|
|
143
|
+
---@param nameOrId string
|
|
144
|
+
---@return boolean
|
|
145
|
+
function remove(nameOrId) end
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**参数:**
|
|
149
|
+
|
|
150
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
151
|
+
| ----------- | -------- | -------- | ------ | ----------------------- |
|
|
152
|
+
| `nameOrId` | `string` | 是 | - | 显示名或 `list` 的 `id` |
|
|
153
|
+
|
|
154
|
+
**返回值:**
|
|
155
|
+
|
|
156
|
+
| 类型 | 描述 |
|
|
157
|
+
| --------- | --------------------- |
|
|
158
|
+
| `boolean` | 找到并删除为 `true` |
|
|
159
|
+
|
|
160
|
+
**示例:**
|
|
161
|
+
|
|
162
|
+
```lua
|
|
163
|
+
jbvpn.remove("Demo")
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### connect - 连接 VPN。
|
|
167
|
+
|
|
168
|
+
传入显示名或 `id` 时先选中再连接;省略则连接当前选中的配置。
|
|
169
|
+
|
|
170
|
+
```lua
|
|
171
|
+
---@param nameOrId? string
|
|
172
|
+
---@return boolean
|
|
173
|
+
function connect(nameOrId) end
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**参数:**
|
|
177
|
+
|
|
178
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
179
|
+
| ----------- | -------- | -------- | ------ | ----------------------------- |
|
|
180
|
+
| `nameOrId` | `string` | 否 | - | 显示名或 `id`;省略用当前选中 |
|
|
181
|
+
|
|
182
|
+
**返回值:**
|
|
183
|
+
|
|
184
|
+
| 类型 | 描述 |
|
|
185
|
+
| --------- | --------------------------------------- |
|
|
186
|
+
| `boolean` | 开始连接为 `true`,不是已经连上 |
|
|
187
|
+
|
|
188
|
+
**示例:**
|
|
189
|
+
|
|
190
|
+
```lua
|
|
191
|
+
jbvpn.connect("Demo")
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### disconnect - 断开当前 VPN 连接。
|
|
195
|
+
|
|
196
|
+
```lua
|
|
197
|
+
---@return boolean
|
|
198
|
+
function disconnect() end
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**返回值:**
|
|
202
|
+
|
|
203
|
+
| 类型 | 描述 |
|
|
204
|
+
| --------- | --------------------------------------- |
|
|
205
|
+
| `boolean` | 开始断开为 `true`,不是已经断开 |
|
|
206
|
+
|
|
207
|
+
**示例:**
|
|
208
|
+
|
|
209
|
+
```lua
|
|
210
|
+
jbvpn.disconnect()
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### status - 读取当前选中 VPN 的状态。
|
|
214
|
+
|
|
215
|
+
```lua
|
|
216
|
+
---@return table|nil
|
|
217
|
+
function status() end
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**返回值:**
|
|
221
|
+
|
|
222
|
+
| 类型 | 描述 |
|
|
223
|
+
| -------------- | --------------------------------------------- |
|
|
224
|
+
| `table \| nil` | 含 `text`、`connected`;没有选中配置返回 `nil` |
|
|
225
|
+
|
|
226
|
+
**示例:**
|
|
227
|
+
|
|
228
|
+
```lua
|
|
229
|
+
local st = jbvpn.status()
|
|
230
|
+
if st and st.connected then
|
|
231
|
+
print(st.text)
|
|
232
|
+
end
|
|
233
|
+
```
|
package/docs/apilua/pip.md
CHANGED
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
模块表是内置全局 `pip`,直接调用即可。不要 `require` 宿主模块。
|
|
4
4
|
|
|
5
|
-
悬浮窗模块提供 iOS
|
|
5
|
+
悬浮窗模块提供 iOS 悬浮窗能力。免越狱包使用系统画中画(Picture in Picture),可用于显示脚本日志、保活提示或脚本自定义文本。越狱包使用同一套 `pip` API 控制全局悬浮球:保活只显示图标,日志显示图标和日志窗口,自定义显示图标和自定义文本窗口。
|
|
6
6
|
|
|
7
7
|
## 功能特性
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- **显示模式**:支持日志、保活和自定义三种显示模式;首次安装默认关闭
|
|
10
10
|
- **关闭控制**:支持主动关闭悬浮窗
|
|
11
11
|
- **状态查询**:判断悬浮窗是否正在显示
|
|
12
|
-
-
|
|
12
|
+
- **尺寸设置**:日志模式和自定义模式支持设置尺寸并分别持久化。系统画中画为宽高比(实际显示尺寸由系统决定);越狱包为窗口宽高(像素)
|
|
13
|
+
- **位置设置**:越狱包可用 `setPosition` 设置日志窗口和自定义文本窗口位置;保活模式不接受;系统画中画位置由 iOS 管理
|
|
13
14
|
- **日志显示**:日志模式支持设置日志文字大小
|
|
14
15
|
- **自定义文本**:自定义模式支持文本、换行、文字颜色、背景色和文字大小
|
|
15
16
|
|
|
@@ -46,7 +47,7 @@ end
|
|
|
46
47
|
function switchToLogMode() end
|
|
47
48
|
```
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
切换到日志模式并尝试显示悬浮窗日志窗口。首次显示系统画中画时 App 必须在前台。日志模式会恢复最近一次保存的日志窗口尺寸。越狱包显示悬浮球图标和日志窗口。
|
|
50
51
|
|
|
51
52
|
**返回值:**
|
|
52
53
|
|
|
@@ -69,7 +70,7 @@ pip.setLogFontSize(10)
|
|
|
69
70
|
function switchToKeepAliveMode() end
|
|
70
71
|
```
|
|
71
72
|
|
|
72
|
-
|
|
73
|
+
切换到保活模式并尝试显示极小高度悬浮窗。首次显示系统画中画时 App 必须在前台。保活模式不接受脚本尺寸设置。越狱包只显示悬浮球图标。
|
|
73
74
|
|
|
74
75
|
**返回值:**
|
|
75
76
|
|
|
@@ -91,7 +92,7 @@ local success = pip.switchToKeepAliveMode()
|
|
|
91
92
|
function switchToCustomMode() end
|
|
92
93
|
```
|
|
93
94
|
|
|
94
|
-
|
|
95
|
+
切换到自定义模式并显示脚本设置的自定义文本。首次显示系统画中画时 App 必须在前台。自定义模式会恢复最近一次保存的自定义窗口尺寸。越狱包显示悬浮球图标和自定义文本窗口。
|
|
95
96
|
|
|
96
97
|
**返回值:**
|
|
97
98
|
|
|
@@ -139,14 +140,14 @@ local success = pip.closeWindow()
|
|
|
139
140
|
function setContentSize(width, height) end
|
|
140
141
|
```
|
|
141
142
|
|
|
142
|
-
|
|
143
|
+
设置日志模式或自定义模式的悬浮窗内容尺寸。系统画中画传入的宽高表示宽高比,不是最终像素尺寸,实际显示宽高由系统决定。越狱包传入的宽高是对应窗口的像素尺寸。宽度和高度都必须传入有效数字。日志模式和自定义模式会分别保存尺寸;关闭状态和保活模式不会生效。
|
|
143
144
|
|
|
144
145
|
**参数:**
|
|
145
146
|
|
|
146
147
|
| 参数 | 类型 | 必填 | 描述 |
|
|
147
148
|
| -------- | ---------------- | ---- | ---------------------------------------------- |
|
|
148
|
-
| `width` | `number` | 是 |
|
|
149
|
-
| `height` | `number` | 是 |
|
|
149
|
+
| `width` | `number` | 是 | 宽度。系统画中画为比例值;越狱包为窗口宽度(像素) |
|
|
150
|
+
| `height` | `number` | 是 | 高度。系统画中画为比例值;越狱包为窗口高度(像素) |
|
|
150
151
|
|
|
151
152
|
**返回值:**
|
|
152
153
|
|
|
@@ -164,6 +165,37 @@ pip.switchToCustomMode()
|
|
|
164
165
|
pip.setContentSize(120, 180)
|
|
165
166
|
```
|
|
166
167
|
|
|
168
|
+
### setPosition - 设置位置
|
|
169
|
+
|
|
170
|
+
```lua
|
|
171
|
+
---@param x number
|
|
172
|
+
---@param y number
|
|
173
|
+
---@return boolean
|
|
174
|
+
function setPosition(x, y) end
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
设置悬浮窗位置。仅越狱包生效;系统画中画由 iOS 管理位置,调用返回 `false`。只对日志窗口和自定义文本窗口生效;保活模式不接受设置位置。
|
|
178
|
+
|
|
179
|
+
**参数:**
|
|
180
|
+
|
|
181
|
+
| 参数 | 类型 | 必填 | 描述 |
|
|
182
|
+
| ---- | -------- | ---- | ------------------ |
|
|
183
|
+
| `x` | `number` | 是 | 窗口左上角逻辑 X |
|
|
184
|
+
| `y` | `number` | 是 | 窗口左上角逻辑 Y |
|
|
185
|
+
|
|
186
|
+
**返回值:**
|
|
187
|
+
|
|
188
|
+
| 类型 | 描述 |
|
|
189
|
+
| --------- | --------------------------------------------------- |
|
|
190
|
+
| `boolean` | `true` 代表位置已提交;`false` 代表当前不能设置位置 |
|
|
191
|
+
|
|
192
|
+
**示例:**
|
|
193
|
+
|
|
194
|
+
```lua
|
|
195
|
+
pip.switchToLogMode()
|
|
196
|
+
pip.setPosition(24, 120)
|
|
197
|
+
```
|
|
198
|
+
|
|
167
199
|
### setLogFontSize - 设置日志文字大小
|
|
168
200
|
|
|
169
201
|
```lua
|
|
@@ -328,9 +360,9 @@ pip.setContentSize(120, 180)
|
|
|
328
360
|
|
|
329
361
|
## 注意事项
|
|
330
362
|
|
|
331
|
-
1.
|
|
332
|
-
2.
|
|
333
|
-
3.
|
|
363
|
+
1. **前台限制**:系统画中画首次切换到日志、保活或自定义显示模式并启动悬浮窗时,App 必须在前台;悬浮窗已启动后可以继续切换显示模式或关闭悬浮窗
|
|
364
|
+
2. **设备兼容性**:系统画中画仅支持 iOS 15+ 且具备画中画功能的设备;越狱包全局悬浮球不依赖系统画中画
|
|
365
|
+
3. **位置**:系统画中画位置由 iOS 管理;越狱包日志/自定义窗口可用 `setPosition`,保活模式不接受
|
|
334
366
|
4. **尺寸持久化**:日志模式和自定义模式分别保存尺寸,互不共用;保活模式不接受脚本尺寸
|
|
335
367
|
5. **日志字号**:日志字号只影响日志模式,保活模式和自定义模式不受影响
|
|
336
368
|
6. **竖向文本**:自定义窗口高度大于宽度时,文本会按逐字符换行方式竖向显示
|
|
@@ -339,11 +371,17 @@ pip.setContentSize(120, 180)
|
|
|
339
371
|
|
|
340
372
|
### 悬浮窗无法显示
|
|
341
373
|
|
|
342
|
-
-
|
|
343
|
-
-
|
|
344
|
-
-
|
|
374
|
+
- 确认当前已切换到日志、保活或自定义模式,且不是关闭状态
|
|
375
|
+
- 系统画中画:确认设备支持悬浮窗功能,并检查悬浮窗权限是否已开启
|
|
376
|
+
- 系统画中画:确认应用当前在前台
|
|
345
377
|
|
|
346
378
|
### setContentSize 返回 false
|
|
347
379
|
|
|
348
380
|
- 确认当前模式是日志模式或自定义模式
|
|
349
381
|
- 确认宽度和高度都传入了有效数字
|
|
382
|
+
|
|
383
|
+
### setPosition 返回 false
|
|
384
|
+
|
|
385
|
+
- 确认当前是越狱包,且已切换到日志或自定义模式,对应窗口已打开
|
|
386
|
+
- 保活模式不支持设置位置
|
|
387
|
+
- 确认 x、y 都传入了有效数字
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# 属性列表模块 (Plist)
|
|
2
|
+
|
|
3
|
+
模块表是内置全局 `plist`,直接调用即可。不要 `require` 宿主模块。路径必须是绝对路径。
|
|
4
|
+
|
|
5
|
+
## API 参考
|
|
6
|
+
|
|
7
|
+
### read - 读取整个 plist。
|
|
8
|
+
|
|
9
|
+
```lua
|
|
10
|
+
---@param path string
|
|
11
|
+
---@return any|nil
|
|
12
|
+
function read(path) end
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**参数:**
|
|
16
|
+
|
|
17
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
18
|
+
| ------ | -------- | -------- | ------ | ------------ |
|
|
19
|
+
| `path` | `string` | 是 | - | 文件绝对路径 |
|
|
20
|
+
|
|
21
|
+
**返回值:**
|
|
22
|
+
|
|
23
|
+
| 类型 | 描述 |
|
|
24
|
+
| -------------- | -------- |
|
|
25
|
+
| `any` \| `nil` | 根对象 |
|
|
26
|
+
|
|
27
|
+
**示例:**
|
|
28
|
+
|
|
29
|
+
```lua
|
|
30
|
+
local path = file.getInternalDir("documents") .. "/info.plist"
|
|
31
|
+
local info = plist.read(path)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### write - 写成 plist。
|
|
35
|
+
|
|
36
|
+
```lua
|
|
37
|
+
---@param path string
|
|
38
|
+
---@param value any
|
|
39
|
+
---@param format string|nil
|
|
40
|
+
---@return boolean
|
|
41
|
+
function write(path, value, format) end
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**参数:**
|
|
45
|
+
|
|
46
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
47
|
+
| -------- | ----------------- | -------- | ------- | ---------------------- |
|
|
48
|
+
| `path` | `string` | 是 | - | 文件绝对路径 |
|
|
49
|
+
| `value` | `any` | 是 | - | 表、字符串、数字或布尔 |
|
|
50
|
+
| `format` | `string` \| `nil` | 否 | `"xml"` | `xml` 或 `binary` |
|
|
51
|
+
|
|
52
|
+
**返回值:**
|
|
53
|
+
|
|
54
|
+
| 类型 | 描述 |
|
|
55
|
+
| --------- | ----------------- |
|
|
56
|
+
| `boolean` | 写入成功为 `true` |
|
|
57
|
+
|
|
58
|
+
**示例:**
|
|
59
|
+
|
|
60
|
+
```lua
|
|
61
|
+
local path = file.getInternalDir("documents") .. "/info.plist"
|
|
62
|
+
plist.write(path, { name = "kuaijs", count = 1 })
|
|
63
|
+
plist.write(path, { name = "kuaijs" }, "binary")
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### get - 按键读取。
|
|
67
|
+
|
|
68
|
+
```lua
|
|
69
|
+
---@param path string
|
|
70
|
+
---@param key string|string[]
|
|
71
|
+
---@return any|nil
|
|
72
|
+
function get(path, key) end
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**参数:**
|
|
76
|
+
|
|
77
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
78
|
+
| ------ | ---------------------- | -------- | ------ | ------------------ |
|
|
79
|
+
| `path` | `string` | 是 | - | 文件绝对路径 |
|
|
80
|
+
| `key` | `string` \| `string[]` | 是 | - | 键,或嵌套键数组表 |
|
|
81
|
+
|
|
82
|
+
**返回值:**
|
|
83
|
+
|
|
84
|
+
| 类型 | 描述 |
|
|
85
|
+
| -------------- | -------- |
|
|
86
|
+
| `any` \| `nil` | 该键的值 |
|
|
87
|
+
|
|
88
|
+
**示例:**
|
|
89
|
+
|
|
90
|
+
```lua
|
|
91
|
+
plist.get(path, "name")
|
|
92
|
+
plist.get(path, { "a", "b" })
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### set - 按键写入。
|
|
96
|
+
|
|
97
|
+
```lua
|
|
98
|
+
---@param path string
|
|
99
|
+
---@param key string|string[]
|
|
100
|
+
---@param value any
|
|
101
|
+
---@return boolean
|
|
102
|
+
function set(path, key, value) end
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**参数:**
|
|
106
|
+
|
|
107
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
108
|
+
| ------- | ---------------------- | -------- | ------ | ------------------ |
|
|
109
|
+
| `path` | `string` | 是 | - | 文件绝对路径 |
|
|
110
|
+
| `key` | `string` \| `string[]` | 是 | - | 键,或嵌套键数组表 |
|
|
111
|
+
| `value` | `any` | 是 | - | 要写入的值 |
|
|
112
|
+
|
|
113
|
+
**返回值:**
|
|
114
|
+
|
|
115
|
+
| 类型 | 描述 |
|
|
116
|
+
| --------- | ----------------- |
|
|
117
|
+
| `boolean` | 写入成功为 `true` |
|
|
118
|
+
|
|
119
|
+
**示例:**
|
|
120
|
+
|
|
121
|
+
```lua
|
|
122
|
+
plist.set(path, "name", "kuaijs")
|
|
123
|
+
plist.set(path, { "a", "b" }, 1)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### remove - 按键删除。
|
|
127
|
+
|
|
128
|
+
```lua
|
|
129
|
+
---@param path string
|
|
130
|
+
---@param key string|string[]
|
|
131
|
+
---@return boolean
|
|
132
|
+
function remove(path, key) end
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**参数:**
|
|
136
|
+
|
|
137
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
138
|
+
| ------ | ---------------------- | -------- | ------ | ------------------ |
|
|
139
|
+
| `path` | `string` | 是 | - | 文件绝对路径 |
|
|
140
|
+
| `key` | `string` \| `string[]` | 是 | - | 键,或嵌套键数组表 |
|
|
141
|
+
|
|
142
|
+
**返回值:**
|
|
143
|
+
|
|
144
|
+
| 类型 | 描述 |
|
|
145
|
+
| --------- | ----------------- |
|
|
146
|
+
| `boolean` | 删除成功为 `true` |
|
|
147
|
+
|
|
148
|
+
**示例:**
|
|
149
|
+
|
|
150
|
+
```lua
|
|
151
|
+
plist.remove(path, "name")
|
|
152
|
+
plist.remove(path, { "a", "b" })
|
|
153
|
+
```
|
package/docs/apilua/ui.md
CHANGED
|
@@ -104,6 +104,27 @@ function eval(code) end
|
|
|
104
104
|
ui.eval("document.title = 'KuaiJS'")
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
+
### evalFloatingWindow - 在越狱悬浮窗网页中执行 JavaScript
|
|
108
|
+
|
|
109
|
+
```lua
|
|
110
|
+
---@param code string
|
|
111
|
+
function evalFloatingWindow(code) end
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
在悬浮窗网页中执行 JavaScript。主界面 WebView 不受影响。没有悬浮窗网页时无效果。
|
|
115
|
+
|
|
116
|
+
**参数:**
|
|
117
|
+
|
|
118
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
119
|
+
| ------ | ------ | -------- | ------ | -------------------- |
|
|
120
|
+
| `code` | string | 是 | - | JavaScript 代码字符串 |
|
|
121
|
+
|
|
122
|
+
**示例:**
|
|
123
|
+
|
|
124
|
+
```lua
|
|
125
|
+
ui.evalFloatingWindow("console.log('float')")
|
|
126
|
+
```
|
|
127
|
+
|
|
107
128
|
### onEvent - 设置事件回调函数
|
|
108
129
|
|
|
109
130
|
```lua
|
|
@@ -154,6 +175,29 @@ ui.call("loadData", {
|
|
|
154
175
|
})
|
|
155
176
|
```
|
|
156
177
|
|
|
178
|
+
### callFloatingWindow - 调用越狱悬浮窗网页中的 JavaScript 函数
|
|
179
|
+
|
|
180
|
+
```lua
|
|
181
|
+
---@param key string
|
|
182
|
+
---@param data table
|
|
183
|
+
function callFloatingWindow(key, data) end
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
调用悬浮窗网页里 `registerUIFunc` 注册的函数。主界面 WebView 不受影响。没有悬浮窗网页时无效果。
|
|
187
|
+
|
|
188
|
+
**参数:**
|
|
189
|
+
|
|
190
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
191
|
+
| ------ | ------ | -------- | ------ | ------------------------ |
|
|
192
|
+
| `key` | string | 是 | | 悬浮窗页面 JavaScript 方法名 |
|
|
193
|
+
| `data` | table | 是 | | 传递给方法的参数 |
|
|
194
|
+
|
|
195
|
+
**示例:**
|
|
196
|
+
|
|
197
|
+
```lua
|
|
198
|
+
ui.callFloatingWindow("updateStatus", { status = "running", progress = 50 })
|
|
199
|
+
```
|
|
200
|
+
|
|
157
201
|
### showToast - 显示 Toast 提示消息
|
|
158
202
|
|
|
159
203
|
```lua
|
|
@@ -693,6 +737,30 @@ ms.getDeviceID()
|
|
|
693
737
|
});
|
|
694
738
|
```
|
|
695
739
|
|
|
740
|
+
#### getOrientation - 获取屏幕方向
|
|
741
|
+
|
|
742
|
+
```typescript
|
|
743
|
+
declare function getOrientation(): Promise<"PORTRAIT" | "LANDSCAPE">;
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
**返回值:**
|
|
747
|
+
|
|
748
|
+
| 类型 | 描述 |
|
|
749
|
+
| ------------------------------------------- | ------------------------------------------------------------ |
|
|
750
|
+
| `Promise<"PORTRAIT" \| "LANDSCAPE">` | `"PORTRAIT"` 竖屏,`"LANDSCAPE"` 横屏 |
|
|
751
|
+
|
|
752
|
+
**说明:**
|
|
753
|
+
|
|
754
|
+
获取当前屏幕方向。
|
|
755
|
+
|
|
756
|
+
**网页端示例:**
|
|
757
|
+
|
|
758
|
+
```javascript
|
|
759
|
+
ms.getOrientation().then((orientation) => {
|
|
760
|
+
console.log(orientation);
|
|
761
|
+
});
|
|
762
|
+
```
|
|
763
|
+
|
|
696
764
|
#### getAuthCardNo - 获取缓存的授权卡密
|
|
697
765
|
|
|
698
766
|
```typescript
|
|
@@ -757,6 +825,55 @@ ms.openURL("https://www.baidu.com")
|
|
|
757
825
|
});
|
|
758
826
|
```
|
|
759
827
|
|
|
828
|
+
#### setWebWindowSize - 设置网页窗口宽高
|
|
829
|
+
|
|
830
|
+
```typescript
|
|
831
|
+
declare function setWebWindowSize(size: {
|
|
832
|
+
portraitWidth: number;
|
|
833
|
+
portraitHeight: number;
|
|
834
|
+
landscapeWidth: number;
|
|
835
|
+
landscapeHeight: number;
|
|
836
|
+
}): Promise<boolean>;
|
|
837
|
+
```
|
|
838
|
+
|
|
839
|
+
**参数:**
|
|
840
|
+
|
|
841
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
842
|
+
| ------ | ------ | -------- | ------ | ------------------------ |
|
|
843
|
+
| `size` | object | 是 | | 横竖屏网页窗口像素尺寸 |
|
|
844
|
+
|
|
845
|
+
**`size` 字段:**
|
|
846
|
+
|
|
847
|
+
| 字段名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
848
|
+
| ----------------- | ------ | -------- | ------ | ---------------------- |
|
|
849
|
+
| `portraitWidth` | number | 是 | | 竖屏窗口宽度(像素) |
|
|
850
|
+
| `portraitHeight` | number | 是 | | 竖屏窗口高度(像素) |
|
|
851
|
+
| `landscapeWidth` | number | 是 | | 横屏窗口宽度(像素) |
|
|
852
|
+
| `landscapeHeight` | number | 是 | | 横屏窗口高度(像素) |
|
|
853
|
+
|
|
854
|
+
**返回值:**
|
|
855
|
+
|
|
856
|
+
| 类型 | 描述 |
|
|
857
|
+
| ------------------ | ------------------------------------- |
|
|
858
|
+
| `Promise<boolean>` | 如果设置成功返回 true,否则返回 false |
|
|
859
|
+
|
|
860
|
+
**说明:**
|
|
861
|
+
|
|
862
|
+
仅越狱包可用。一次同时设置竖屏和横屏的网页窗口像素尺寸。未调用过时,横竖屏都默认使用对应朝向屏幕宽高的 60%。免越狱包调用返回 `false`。
|
|
863
|
+
|
|
864
|
+
**网页端示例:**
|
|
865
|
+
|
|
866
|
+
```javascript
|
|
867
|
+
ms.setWebWindowSize({
|
|
868
|
+
portraitWidth: 700,
|
|
869
|
+
portraitHeight: 1200,
|
|
870
|
+
landscapeWidth: 1200,
|
|
871
|
+
landscapeHeight: 700,
|
|
872
|
+
}).then((ok) => {
|
|
873
|
+
console.log(ok);
|
|
874
|
+
});
|
|
875
|
+
```
|
|
876
|
+
|
|
760
877
|
### 完整示例
|
|
761
878
|
|
|
762
879
|
**完整的控制面板示例:**
|
package/docs/apipython/device.md
CHANGED
|
@@ -69,21 +69,19 @@ print(f"剩余存储: {s.free}{s.unit}")
|
|
|
69
69
|
|
|
70
70
|
## 设备标识信息
|
|
71
71
|
|
|
72
|
-
### getDeviceID -
|
|
72
|
+
### getDeviceID - 获取设备 ID。
|
|
73
|
+
|
|
74
|
+
越狱包返回芯片生成的固定 ID,卸载重装不变;免越狱包返回 IDFV,卸载重装会改变。
|
|
73
75
|
|
|
74
76
|
```python
|
|
75
77
|
def getDeviceID() -> str
|
|
76
78
|
```
|
|
77
79
|
|
|
78
|
-
**注意事项:**
|
|
79
|
-
|
|
80
|
-
- 卸载重装 APP 后会改变;更新 APP 后不会改变
|
|
81
|
-
|
|
82
80
|
**返回值:**
|
|
83
81
|
|
|
84
|
-
| 类型 | 描述
|
|
85
|
-
| ----- |
|
|
86
|
-
| `str` |
|
|
82
|
+
| 类型 | 描述 |
|
|
83
|
+
| ----- | ------- |
|
|
84
|
+
| `str` | 设备 ID |
|
|
87
85
|
|
|
88
86
|
**示例:**
|
|
89
87
|
|
package/docs/apipython/g.md
CHANGED