ms-vite-plugin 1.4.58 → 1.4.60
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/dist/luaBundle.js +1 -1
- package/dist/luaObfuscator/addVararg.d.ts +2 -0
- package/dist/luaObfuscator/addVararg.js +1 -0
- package/dist/luaObfuscator/antiTamper.d.ts +2 -0
- package/dist/luaObfuscator/antiTamper.js +26 -0
- package/dist/luaObfuscator/ast.d.ts +191 -0
- package/dist/luaObfuscator/ast.js +1 -0
- package/dist/luaObfuscator/cipher.d.ts +10 -0
- package/dist/luaObfuscator/cipher.js +28 -0
- package/dist/luaObfuscator/compiler.d.ts +31 -0
- package/dist/luaObfuscator/compiler.js +1 -0
- package/dist/luaObfuscator/constantArray.d.ts +5 -0
- package/dist/luaObfuscator/constantArray.js +1 -0
- package/dist/luaObfuscator/flatten.d.ts +2 -0
- package/dist/luaObfuscator/flatten.js +1 -0
- package/dist/luaObfuscator/index.d.ts +6 -0
- package/dist/luaObfuscator/index.js +1 -0
- package/dist/luaObfuscator/lexer.d.ts +14 -0
- package/dist/luaObfuscator/lexer.js +10 -0
- package/dist/luaObfuscator/minify.d.ts +3 -0
- package/dist/luaObfuscator/minify.js +1 -0
- package/dist/luaObfuscator/numbers.d.ts +2 -0
- package/dist/luaObfuscator/numbers.js +1 -0
- package/dist/luaObfuscator/opcodes.d.ts +3 -0
- package/dist/luaObfuscator/opcodes.js +1 -0
- package/dist/luaObfuscator/parser.d.ts +8 -0
- package/dist/luaObfuscator/parser.js +1 -0
- package/dist/luaObfuscator/rename.d.ts +3 -0
- package/dist/luaObfuscator/rename.js +1 -0
- package/dist/luaObfuscator/reserved.d.ts +5 -0
- package/dist/luaObfuscator/reserved.js +1 -0
- package/dist/luaObfuscator/scope.d.ts +11 -0
- package/dist/luaObfuscator/scope.js +1 -0
- package/dist/luaObfuscator/selftest.d.ts +1 -0
- package/dist/luaObfuscator/selftest.js +39 -0
- package/dist/luaObfuscator/splitStrings.d.ts +2 -0
- package/dist/luaObfuscator/splitStrings.js +1 -0
- package/dist/luaObfuscator/strings.d.ts +4 -0
- package/dist/luaObfuscator/strings.js +1 -0
- package/dist/luaObfuscator/visit.d.ts +5 -0
- package/dist/luaObfuscator/visit.js +1 -0
- package/dist/luaObfuscator/vmEmit.d.ts +2 -0
- package/dist/luaObfuscator/vmEmit.js +281 -0
- package/dist/luaObfuscator/wrapInFunction.d.ts +2 -0
- package/dist/luaObfuscator/wrapInFunction.js +1 -0
- package/docs/AGENTS.md +1 -1
- package/docs/SKILL.md +1 -1
- package/docs/api/media.md +22 -0
- package/docs/apicn/media.md +22 -0
- package/docs/apilua/action.md +2 -27
- package/docs/apilua/appleocr.md +41 -126
- package/docs/apilua/cloud.md +2 -6
- package/docs/apilua/config.md +2 -6
- package/docs/apilua/cryptoUtils.md +2 -7
- package/docs/apilua/device.md +2 -19
- package/docs/apilua/dotocr.md +2 -5
- package/docs/apilua/file.md +2 -17
- package/docs/apilua/global.md +1 -1
- package/docs/apilua/hid.md +2 -44
- package/docs/apilua/hotUpdate.md +2 -3
- package/docs/apilua/http.md +2 -7
- package/docs/apilua/image.md +16 -107
- package/docs/apilua/ime.md +2 -10
- package/docs/apilua/logger.md +3 -9
- package/docs/apilua/media.md +2 -9
- package/docs/apilua/mysql.md +2 -10
- package/docs/apilua/netCard.md +2 -6
- package/docs/apilua/node.md +2 -3
- package/docs/apilua/opencv.md +4 -30
- package/docs/apilua/paddleocr.md +20 -126
- package/docs/apilua/pip.md +2 -12
- package/docs/apilua/system.md +2 -40
- package/docs/apilua/tomatoocr.md +2 -16
- package/docs/apilua/tts.md +2 -9
- package/docs/apilua/ui.md +3 -22
- package/docs/apilua/utils.md +2 -9
- package/docs/apilua/yolo.md +25 -119
- package/docs/apilua/yolocls.md +2 -5
- package/docs/apipython/media.md +20 -0
- package/docs/mcp-agent-description.md +1 -1
- package/docs/quick/vscode/createProject.md +1 -1
- package/docs/quick/vscode/packProject.md +1 -1
- package/package.json +1 -1
package/docs/apilua/image.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 图片模块 (Image)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `image`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
图片模块提供了强大的图像处理功能,包括截图、图像识别、模板匹配、颜色查找、图像变换等。
|
|
4
6
|
|
|
5
7
|
注意所有的 `imageId` 都需要在使用后释放,否则会导致内存泄漏。
|
|
@@ -18,8 +20,6 @@
|
|
|
18
20
|
|
|
19
21
|
### captureScreen - 截取屏幕。
|
|
20
22
|
|
|
21
|
-
坐标缺省 `0` 表示全屏。四个坐标都传 `0` 时与 `captureFullScreen` 相同。
|
|
22
|
-
|
|
23
23
|
```lua
|
|
24
24
|
---@param x number?
|
|
25
25
|
---@param y number?
|
|
@@ -47,8 +47,6 @@ function captureScreen(x, y, ex, ey) end
|
|
|
47
47
|
**示例:**
|
|
48
48
|
|
|
49
49
|
```lua
|
|
50
|
-
local image = require("image")
|
|
51
|
-
local file = require("file")
|
|
52
50
|
local dir = file.getInternalDir("documents")
|
|
53
51
|
|
|
54
52
|
-- 全屏截图
|
|
@@ -66,77 +64,6 @@ if rectId then
|
|
|
66
64
|
end
|
|
67
65
|
```
|
|
68
66
|
|
|
69
|
-
### captureFullScreen - 截取全屏。
|
|
70
|
-
|
|
71
|
-
```lua
|
|
72
|
-
---@return string|nil
|
|
73
|
-
function captureFullScreen() end
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
**返回值:**
|
|
77
|
-
|
|
78
|
-
| 类型 | 描述 |
|
|
79
|
-
| --------------- | -------------------------------- |
|
|
80
|
-
| `string \| nil` | 截图的图片 ID,失败时返回 `nil` |
|
|
81
|
-
|
|
82
|
-
**示例:**
|
|
83
|
-
|
|
84
|
-
```lua
|
|
85
|
-
local image = require("image")
|
|
86
|
-
local file = require("file")
|
|
87
|
-
local imageId = image.captureFullScreen()
|
|
88
|
-
local dir = file.getInternalDir("documents")
|
|
89
|
-
if imageId then
|
|
90
|
-
print("截图成功")
|
|
91
|
-
image.saveTo(imageId, dir .. "/screenshot.jpg")
|
|
92
|
-
image.release(imageId)
|
|
93
|
-
else
|
|
94
|
-
print("截图失败")
|
|
95
|
-
end
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### captureRect - 截取指定区域。
|
|
99
|
-
|
|
100
|
-
```lua
|
|
101
|
-
---@param x number?
|
|
102
|
-
---@param y number?
|
|
103
|
-
---@param ex number?
|
|
104
|
-
---@param ey number?
|
|
105
|
-
---@return string|nil
|
|
106
|
-
function captureRect(x, y, ex, ey) end
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
**参数:**
|
|
110
|
-
|
|
111
|
-
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
112
|
-
| ------ | ------ | -------- | ------ | ----------------- |
|
|
113
|
-
| `x` | number | 否 | 0 | 区域左上角 X 坐标 |
|
|
114
|
-
| `y` | number | 否 | 0 | 区域左上角 Y 坐标 |
|
|
115
|
-
| `ex` | number | 否 | 0 | 区域右下角 X 坐标 |
|
|
116
|
-
| `ey` | number | 否 | 0 | 区域右下角 Y 坐标 |
|
|
117
|
-
|
|
118
|
-
**返回值:**
|
|
119
|
-
|
|
120
|
-
| 类型 | 描述 |
|
|
121
|
-
| --------------- | -------------------------------- |
|
|
122
|
-
| `string \| nil` | 截图的图片 ID,失败时返回 `nil` |
|
|
123
|
-
|
|
124
|
-
**示例:**
|
|
125
|
-
|
|
126
|
-
```lua
|
|
127
|
-
local image = require("image")
|
|
128
|
-
local file = require("file")
|
|
129
|
-
local imageId = image.captureRect(100, 100, 200, 200)
|
|
130
|
-
local dir = file.getInternalDir("documents")
|
|
131
|
-
if imageId then
|
|
132
|
-
print("截图成功")
|
|
133
|
-
image.saveTo(imageId, dir .. "/screenshot.jpg")
|
|
134
|
-
image.release(imageId)
|
|
135
|
-
else
|
|
136
|
-
print("截图失败")
|
|
137
|
-
end
|
|
138
|
-
```
|
|
139
|
-
|
|
140
67
|
### readImage - 从文件路径或imageId读取图片。
|
|
141
68
|
|
|
142
69
|
```lua
|
|
@@ -160,7 +87,6 @@ function readImage(path) end
|
|
|
160
87
|
**示例:**
|
|
161
88
|
|
|
162
89
|
```lua
|
|
163
|
-
local image = require("image")
|
|
164
90
|
local imageId = image.readImage("template.jpg")
|
|
165
91
|
if imageId then
|
|
166
92
|
print("图片读取成功")
|
|
@@ -196,8 +122,7 @@ function saveTo(imageId, filePath) end
|
|
|
196
122
|
**示例:**
|
|
197
123
|
|
|
198
124
|
```lua
|
|
199
|
-
local
|
|
200
|
-
local imageId = image.captureFullScreen()
|
|
125
|
+
local imageId = image.captureScreen()
|
|
201
126
|
-- 获取手机文档目录
|
|
202
127
|
local dir = file.getInternalDir("documents")
|
|
203
128
|
if imageId then
|
|
@@ -250,8 +175,7 @@ function isRelease(imageId) end
|
|
|
250
175
|
**示例:**
|
|
251
176
|
|
|
252
177
|
```lua
|
|
253
|
-
local
|
|
254
|
-
local imageId = image.captureFullScreen()
|
|
178
|
+
local imageId = image.captureScreen()
|
|
255
179
|
if imageId then
|
|
256
180
|
print("释放前: " .. tostring(image.isRelease(imageId))); -- false
|
|
257
181
|
image.release(imageId)
|
|
@@ -284,8 +208,7 @@ function getSize(imageId) end
|
|
|
284
208
|
**示例:**
|
|
285
209
|
|
|
286
210
|
```lua
|
|
287
|
-
local
|
|
288
|
-
local imageId = image.captureFullScreen()
|
|
211
|
+
local imageId = image.captureScreen()
|
|
289
212
|
if imageId then
|
|
290
213
|
local size = image.getSize(imageId)
|
|
291
214
|
if size then
|
|
@@ -322,8 +245,7 @@ function pixel(imageId, x, y) end
|
|
|
322
245
|
**示例:**
|
|
323
246
|
|
|
324
247
|
```lua
|
|
325
|
-
local
|
|
326
|
-
local imageId = image.captureFullScreen()
|
|
248
|
+
local imageId = image.captureScreen()
|
|
327
249
|
if imageId then
|
|
328
250
|
local color = image.pixel(imageId, 100, 100)
|
|
329
251
|
local colorHex = image.argb(color)
|
|
@@ -391,8 +313,7 @@ function findColor(imageId, color, threshold, x, y, ex, ey, limit, orz) end
|
|
|
391
313
|
**示例:**
|
|
392
314
|
|
|
393
315
|
```lua
|
|
394
|
-
local
|
|
395
|
-
local imageId = image.captureFullScreen()
|
|
316
|
+
local imageId = image.captureScreen()
|
|
396
317
|
if imageId then
|
|
397
318
|
-- 查找蓝色按钮
|
|
398
319
|
local points = image.findColor(
|
|
@@ -456,8 +377,7 @@ function findMultiColor(imageId, firstColor, threshold, points, x, y, ex, ey, li
|
|
|
456
377
|
**示例:**
|
|
457
378
|
|
|
458
379
|
```lua
|
|
459
|
-
local
|
|
460
|
-
local imageId = image.captureFullScreen()
|
|
380
|
+
local imageId = image.captureScreen()
|
|
461
381
|
if imageId then
|
|
462
382
|
-- 查找特定的颜色组合(如按钮的特征颜色)
|
|
463
383
|
local points = image.findMultiColor(
|
|
@@ -517,8 +437,7 @@ function countColor(imageId, colors, threshold, x, y, ex, ey) end
|
|
|
517
437
|
**示例:**
|
|
518
438
|
|
|
519
439
|
```lua
|
|
520
|
-
local
|
|
521
|
-
local imageId = image.captureFullScreen()
|
|
440
|
+
local imageId = image.captureScreen()
|
|
522
441
|
if imageId then
|
|
523
442
|
local count = image.countColor(
|
|
524
443
|
imageId,
|
|
@@ -562,8 +481,7 @@ function cmpColor(imageId, points, threshold) end
|
|
|
562
481
|
**示例:**
|
|
563
482
|
|
|
564
483
|
```lua
|
|
565
|
-
local
|
|
566
|
-
local imageId = image.captureFullScreen()
|
|
484
|
+
local imageId = image.captureScreen()
|
|
567
485
|
if imageId then
|
|
568
486
|
-- 检查特定区域是否为预期颜色
|
|
569
487
|
local isMatch = image.cmpColor(
|
|
@@ -805,7 +723,6 @@ local scaleFactors = buildScaleFactors(baseScale)
|
|
|
805
723
|
**示例:**
|
|
806
724
|
|
|
807
725
|
```lua
|
|
808
|
-
local image = require("image")
|
|
809
726
|
-- 1) 同分辨率标准找图(最常用,模板就是本机截的)
|
|
810
727
|
local matches = image.findImage(
|
|
811
728
|
"screen",
|
|
@@ -918,8 +835,7 @@ function clip(imageId, x, y, ex, ey) end
|
|
|
918
835
|
**示例:**
|
|
919
836
|
|
|
920
837
|
```lua
|
|
921
|
-
local
|
|
922
|
-
local imageId = image.captureFullScreen()
|
|
838
|
+
local imageId = image.captureScreen()
|
|
923
839
|
-- 获取手机文档目录
|
|
924
840
|
local dir = file.getInternalDir("documents")
|
|
925
841
|
if imageId then
|
|
@@ -961,7 +877,6 @@ function rotateImage(imageId, degree) end
|
|
|
961
877
|
**示例:**
|
|
962
878
|
|
|
963
879
|
```lua
|
|
964
|
-
local image = require("image")
|
|
965
880
|
local imageId = image.readImage("photo.jpg")
|
|
966
881
|
-- 获取手机文档目录
|
|
967
882
|
local dir = file.getInternalDir("documents")
|
|
@@ -998,8 +913,7 @@ function gray(imageId) end
|
|
|
998
913
|
**示例:**
|
|
999
914
|
|
|
1000
915
|
```lua
|
|
1001
|
-
local
|
|
1002
|
-
local imageId = image.captureFullScreen()
|
|
916
|
+
local imageId = image.captureScreen()
|
|
1003
917
|
-- 获取手机文档目录
|
|
1004
918
|
local dir = file.getInternalDir("documents")
|
|
1005
919
|
if imageId then
|
|
@@ -1035,8 +949,7 @@ function binaryzation(imageId, threshold) end
|
|
|
1035
949
|
**示例:**
|
|
1036
950
|
|
|
1037
951
|
```lua
|
|
1038
|
-
local
|
|
1039
|
-
local imageId = image.captureFullScreen()
|
|
952
|
+
local imageId = image.captureScreen()
|
|
1040
953
|
-- 获取手机文档目录
|
|
1041
954
|
local dir = file.getInternalDir("documents")
|
|
1042
955
|
if imageId then
|
|
@@ -1073,11 +986,10 @@ function drawRect(imageId, x, y, ex, ey, color, thickness) end
|
|
|
1073
986
|
**示例:**
|
|
1074
987
|
|
|
1075
988
|
```lua
|
|
1076
|
-
local image = require("image")
|
|
1077
989
|
-- 获取手机文档目录
|
|
1078
990
|
local dir = file.getInternalDir("documents")
|
|
1079
991
|
|
|
1080
|
-
local imageId = image.
|
|
992
|
+
local imageId = image.captureScreen()
|
|
1081
993
|
if imageId then
|
|
1082
994
|
image.drawRect(imageId, 100, 100, 200, 100, "#FF0000", 2)
|
|
1083
995
|
image.saveTo(imageId, tostring(dir) .. "/test.jpg")
|
|
@@ -1108,8 +1020,7 @@ function scanCode(imageId) end
|
|
|
1108
1020
|
**示例:**
|
|
1109
1021
|
|
|
1110
1022
|
```lua
|
|
1111
|
-
local
|
|
1112
|
-
local imageId = image.captureFullScreen()
|
|
1023
|
+
local imageId = image.captureScreen()
|
|
1113
1024
|
if imageId then
|
|
1114
1025
|
local result = image.scanCode(imageId)
|
|
1115
1026
|
if result then
|
|
@@ -1146,7 +1057,6 @@ function base64ToImage(base64) end
|
|
|
1146
1057
|
**示例:**
|
|
1147
1058
|
|
|
1148
1059
|
```lua
|
|
1149
|
-
local image = require("image")
|
|
1150
1060
|
local base64Data =
|
|
1151
1061
|
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg=="
|
|
1152
1062
|
local imageId = image.base64ToImage(base64Data)
|
|
@@ -1185,8 +1095,7 @@ function toBase64Format(imageId, format, q) end
|
|
|
1185
1095
|
**示例:**
|
|
1186
1096
|
|
|
1187
1097
|
```lua
|
|
1188
|
-
local
|
|
1189
|
-
local imageId = image.captureFullScreen()
|
|
1098
|
+
local imageId = image.captureScreen()
|
|
1190
1099
|
if imageId then
|
|
1191
1100
|
local base64 = image.toBase64Format(imageId, "jpg", 90)
|
|
1192
1101
|
print("Base64 数据: " .. tostring(base64.substring(0, 100)) .. "...")
|
package/docs/apilua/ime.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 输入法模块 (IME)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `ime`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
输入法模块提供了文本输入、剪贴板操作、键盘控制等功能,支持模拟用户的文本输入行为。
|
|
4
6
|
|
|
5
7
|
## 前提条件
|
|
@@ -27,7 +29,6 @@ function isOk() end
|
|
|
27
29
|
**示例:**
|
|
28
30
|
|
|
29
31
|
```lua
|
|
30
|
-
local ime = require("ime")
|
|
31
32
|
-- 检查输入法状态,只有键盘弹出后面的方法才能调用
|
|
32
33
|
if ime.isOk() then
|
|
33
34
|
print("输入法键盘已弹出")
|
|
@@ -55,7 +56,6 @@ function getText() end
|
|
|
55
56
|
**示例:**
|
|
56
57
|
|
|
57
58
|
```lua
|
|
58
|
-
local ime = require("ime")
|
|
59
59
|
-- 获取当前输入框文本
|
|
60
60
|
local currentText = ime.getText()
|
|
61
61
|
print("当前文本: " .. tostring(currentText))
|
|
@@ -77,7 +77,6 @@ function clearText() end
|
|
|
77
77
|
**示例:**
|
|
78
78
|
|
|
79
79
|
```lua
|
|
80
|
-
local ime = require("ime")
|
|
81
80
|
-- 清空输入框
|
|
82
81
|
if ime.clearText() then
|
|
83
82
|
print("文本清除成功")
|
|
@@ -111,7 +110,6 @@ function input(text) end
|
|
|
111
110
|
**示例:**
|
|
112
111
|
|
|
113
112
|
```lua
|
|
114
|
-
local ime = require("ime")
|
|
115
113
|
-- 基础文本输入
|
|
116
114
|
local textAfter = ime.input("Hello World")
|
|
117
115
|
print("输入后文本: " .. tostring(textAfter))
|
|
@@ -143,7 +141,6 @@ function paste(content) end
|
|
|
143
141
|
**示例:**
|
|
144
142
|
|
|
145
143
|
```lua
|
|
146
|
-
local ime = require("ime")
|
|
147
144
|
-- 基础粘贴操作(使用剪贴板内容)
|
|
148
145
|
local pasted = ime.paste()
|
|
149
146
|
print("粘贴后文本: " .. tostring(pasted))
|
|
@@ -170,7 +167,6 @@ function pressDel() end
|
|
|
170
167
|
**示例:**
|
|
171
168
|
|
|
172
169
|
```lua
|
|
173
|
-
local ime = require("ime")
|
|
174
170
|
-- 删除一个字符
|
|
175
171
|
local remaining = ime.pressDel()
|
|
176
172
|
print("删除后剩余文本: " .. tostring(remaining))
|
|
@@ -192,7 +188,6 @@ function pressEnter() end
|
|
|
192
188
|
**示例:**
|
|
193
189
|
|
|
194
190
|
```lua
|
|
195
|
-
local ime = require("ime")
|
|
196
191
|
-- 按下回车键
|
|
197
192
|
if ime.pressEnter() then
|
|
198
193
|
print("回车键按下成功")
|
|
@@ -217,7 +212,6 @@ function dismiss() end
|
|
|
217
212
|
**示例:**
|
|
218
213
|
|
|
219
214
|
```lua
|
|
220
|
-
local ime = require("ime")
|
|
221
215
|
-- 隐藏键盘
|
|
222
216
|
if ime.dismiss() then
|
|
223
217
|
print("键盘隐藏成功")
|
|
@@ -244,7 +238,6 @@ function getClipboard() end
|
|
|
244
238
|
**示例:**
|
|
245
239
|
|
|
246
240
|
```lua
|
|
247
|
-
local ime = require("ime")
|
|
248
241
|
-- 获取剪贴板内容
|
|
249
242
|
local clipboardText = ime.getClipboard()
|
|
250
243
|
print("剪贴板内容: " .. tostring(clipboardText))
|
|
@@ -273,7 +266,6 @@ function setClipboard(text) end
|
|
|
273
266
|
**示例:**
|
|
274
267
|
|
|
275
268
|
```lua
|
|
276
|
-
local ime = require("ime")
|
|
277
269
|
-- 设置剪贴板内容
|
|
278
270
|
if ime.setClipboard("要复制的文本") then
|
|
279
271
|
print("剪贴板设置成功")
|
package/docs/apilua/logger.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 日志模块 (Logger)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `logger`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
日志模块提供了完整的日志记录功能,支持不同的日志级别、文件输出、日志管理等。
|
|
4
6
|
|
|
5
7
|
- **日志级别** 开发环境默认 `debug`,打包环境默认 `info`。如需自定义日志级别,可使用 `setLoggerLevel` 方法。
|
|
@@ -14,7 +16,7 @@
|
|
|
14
16
|
|
|
15
17
|
- **关闭存储日志** 可使用 `setLogToFile(false)` 关闭将日志输出到文件的功能。
|
|
16
18
|
|
|
17
|
-
- **全局别名** `logd` / `logi` / `logw` / `loge` 是裸全局,分别等同 `logger.debug` / `logger.info` / `logger.warn` / `logger.error
|
|
19
|
+
- **全局别名** `logd` / `logi` / `logw` / `loge` 是裸全局,分别等同 `logger.debug` / `logger.info` / `logger.warn` / `logger.error`,无需再取模块表。
|
|
18
20
|
|
|
19
21
|
## 日志级别
|
|
20
22
|
|
|
@@ -49,7 +51,6 @@ function setLoggerLevel(level) end
|
|
|
49
51
|
**示例:**
|
|
50
52
|
|
|
51
53
|
```lua
|
|
52
|
-
local logger = require("logger")
|
|
53
54
|
-- 设置为调试级别(输出所有日志)
|
|
54
55
|
logger.setLoggerLevel("debug")
|
|
55
56
|
-- 设置为信息级别(不输出调试日志)
|
|
@@ -79,7 +80,6 @@ function setLogToFile(enabled) end
|
|
|
79
80
|
**示例:**
|
|
80
81
|
|
|
81
82
|
```lua
|
|
82
|
-
local logger = require("logger")
|
|
83
83
|
-- 启用文件日志(默认)
|
|
84
84
|
logger.setLogToFile(true)
|
|
85
85
|
-- 禁用文件日志(只在控制台输出)
|
|
@@ -110,7 +110,6 @@ function setMaxLogFileCount(count) end
|
|
|
110
110
|
**示例:**
|
|
111
111
|
|
|
112
112
|
```lua
|
|
113
|
-
local logger = require("logger")
|
|
114
113
|
-- 设置最大日志文件数量为 5 个文件
|
|
115
114
|
logger.setMaxLogFileCount(5)
|
|
116
115
|
```
|
|
@@ -136,7 +135,6 @@ function setMaxLogFileSize(size) end
|
|
|
136
135
|
**示例:**
|
|
137
136
|
|
|
138
137
|
```lua
|
|
139
|
-
local logger = require("logger")
|
|
140
138
|
-- 设置最大日志文件大小为 5MB
|
|
141
139
|
logger.setMaxLogFileSize(5)
|
|
142
140
|
```
|
|
@@ -156,7 +154,6 @@ function resetLogFile() end
|
|
|
156
154
|
**示例:**
|
|
157
155
|
|
|
158
156
|
```lua
|
|
159
|
-
local logger = require("logger")
|
|
160
157
|
logger.resetLogFile()
|
|
161
158
|
logger.info("日志文件已重置")
|
|
162
159
|
|
|
@@ -244,8 +241,6 @@ function warn(...args) end
|
|
|
244
241
|
**示例:**
|
|
245
242
|
|
|
246
243
|
```lua
|
|
247
|
-
local logger = require("logger")
|
|
248
|
-
local device = require("device")
|
|
249
244
|
logger.warn("电池电量低于 20%")
|
|
250
245
|
logger.warn("网络连接不稳定")
|
|
251
246
|
logger.warn("使用了已废弃的 API")
|
|
@@ -288,7 +283,6 @@ function error(...args) end
|
|
|
288
283
|
**示例:**
|
|
289
284
|
|
|
290
285
|
```lua
|
|
291
|
-
local logger = require("logger")
|
|
292
286
|
logger.error("网络请求失败")
|
|
293
287
|
logger.error("文件读取错误")
|
|
294
288
|
logger.error("数据库连接失败")
|
package/docs/apilua/media.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 媒体模块 (Media)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `media`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
媒体模块提供了丰富的媒体操作功能,包括图片和视频的相册管理,以及音频播放控制等功能。
|
|
4
6
|
|
|
5
7
|
## 功能概览
|
|
@@ -35,7 +37,6 @@ function saveImageToAlbum(imageId) end
|
|
|
35
37
|
**示例:**
|
|
36
38
|
|
|
37
39
|
```lua
|
|
38
|
-
local media = require("media")
|
|
39
40
|
-- 保存截图到相册
|
|
40
41
|
media.saveImageToAlbum("screen")
|
|
41
42
|
|
|
@@ -75,7 +76,6 @@ function saveVideoToAlbumPath(path) end
|
|
|
75
76
|
**示例:**
|
|
76
77
|
|
|
77
78
|
```lua
|
|
78
|
-
local media = require("media")
|
|
79
79
|
-- 保存视频到相册 (从 documents 目录读取)
|
|
80
80
|
local documentsDir = file.getInternalDir("documents")
|
|
81
81
|
local videoName = "video.mp4"
|
|
@@ -104,7 +104,6 @@ function deleteAllPhotos() end
|
|
|
104
104
|
**示例:**
|
|
105
105
|
|
|
106
106
|
```lua
|
|
107
|
-
local media = require("media")
|
|
108
107
|
-- 清空相册图片
|
|
109
108
|
local deleted = media.deleteAllPhotos()
|
|
110
109
|
if deleted then
|
|
@@ -130,7 +129,6 @@ function deleteAllVideos() end
|
|
|
130
129
|
**示例:**
|
|
131
130
|
|
|
132
131
|
```lua
|
|
133
|
-
local media = require("media")
|
|
134
132
|
-- 清空相册视频
|
|
135
133
|
local deleted = media.deleteAllVideos()
|
|
136
134
|
if deleted then
|
|
@@ -150,7 +148,6 @@ function deleteAllScreenshots() end
|
|
|
150
148
|
**示例:**
|
|
151
149
|
|
|
152
150
|
```lua
|
|
153
|
-
local media = require("media")
|
|
154
151
|
local deleted = media.deleteAllScreenshots()
|
|
155
152
|
if deleted then
|
|
156
153
|
print("相册截图已清空")
|
|
@@ -184,7 +181,6 @@ function playMp3(path, loop) end
|
|
|
184
181
|
**示例:**
|
|
185
182
|
|
|
186
183
|
```lua
|
|
187
|
-
local media = require("media")
|
|
188
184
|
-- 播放背景音乐(循环)
|
|
189
185
|
local played = media.playMp3("/path/to/background.mp3", true)
|
|
190
186
|
if played then
|
|
@@ -213,7 +209,6 @@ function stopMp3() end
|
|
|
213
209
|
**示例:**
|
|
214
210
|
|
|
215
211
|
```lua
|
|
216
|
-
local media = require("media")
|
|
217
212
|
-- 停止音乐播放
|
|
218
213
|
local stopped = media.stopMp3()
|
|
219
214
|
if stopped then
|
|
@@ -246,7 +241,6 @@ function playMp3WaitEnd(path) end
|
|
|
246
241
|
**示例:**
|
|
247
242
|
|
|
248
243
|
```lua
|
|
249
|
-
local media = require("media")
|
|
250
244
|
-- 同步播放音频,等待播放完成
|
|
251
245
|
print("开始播放音频...")
|
|
252
246
|
local played = media.playMp3WaitEnd("/path/to/notification.mp3")
|
|
@@ -274,7 +268,6 @@ function isMp3Playing() end
|
|
|
274
268
|
**示例:**
|
|
275
269
|
|
|
276
270
|
```lua
|
|
277
|
-
local media = require("media")
|
|
278
271
|
if media.isMp3Playing() then
|
|
279
272
|
print("正在播放")
|
|
280
273
|
else
|
package/docs/apilua/mysql.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# MySQL 数据库模块 (MySQL)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `mysql`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
MySQL 模块提供了完整的 MySQL 数据库连接和操作功能,支持连接管理、查询执行、事务处理等核心数据库操作。
|
|
4
6
|
|
|
5
7
|
## 功能概览
|
|
@@ -91,7 +93,6 @@ function connect(config) end
|
|
|
91
93
|
**示例:**
|
|
92
94
|
|
|
93
95
|
```lua
|
|
94
|
-
local mysql = require("mysql")
|
|
95
96
|
local success = mysql.connect({
|
|
96
97
|
host = "localhost",
|
|
97
98
|
port = 3306,
|
|
@@ -119,7 +120,6 @@ function disconnect() end
|
|
|
119
120
|
**示例:**
|
|
120
121
|
|
|
121
122
|
```lua
|
|
122
|
-
local mysql = require("mysql")
|
|
123
123
|
mysql.disconnect()
|
|
124
124
|
print("数据库连接已断开")
|
|
125
125
|
```
|
|
@@ -140,7 +140,6 @@ function isConnected() end
|
|
|
140
140
|
**示例:**
|
|
141
141
|
|
|
142
142
|
```lua
|
|
143
|
-
local mysql = require("mysql")
|
|
144
143
|
if mysql.isConnected() then
|
|
145
144
|
print("数据库已连接")
|
|
146
145
|
else
|
|
@@ -177,7 +176,6 @@ function query(sql, params) end
|
|
|
177
176
|
**示例:**
|
|
178
177
|
|
|
179
178
|
```lua
|
|
180
|
-
local mysql = require("mysql")
|
|
181
179
|
-- 简单查询
|
|
182
180
|
local result1 = mysql.query("SELECT * FROM users")
|
|
183
181
|
if result1.success then
|
|
@@ -225,7 +223,6 @@ function execute(sql, params) end
|
|
|
225
223
|
**示例:**
|
|
226
224
|
|
|
227
225
|
```lua
|
|
228
|
-
local mysql = require("mysql")
|
|
229
226
|
-- 创建表
|
|
230
227
|
local createTableResult = mysql.execute("
|
|
231
228
|
CREATE TABLE IF NOT EXISTS users (
|
|
@@ -284,7 +281,6 @@ function beginTransaction() end
|
|
|
284
281
|
**示例:**
|
|
285
282
|
|
|
286
283
|
```lua
|
|
287
|
-
local mysql = require("mysql")
|
|
288
284
|
if mysql.beginTransaction() then
|
|
289
285
|
print("事务开始")
|
|
290
286
|
else
|
|
@@ -308,7 +304,6 @@ function commit() end
|
|
|
308
304
|
**示例:**
|
|
309
305
|
|
|
310
306
|
```lua
|
|
311
|
-
local mysql = require("mysql")
|
|
312
307
|
if mysql.commit() then
|
|
313
308
|
print("事务提交成功")
|
|
314
309
|
else
|
|
@@ -332,7 +327,6 @@ function rollback() end
|
|
|
332
327
|
**示例:**
|
|
333
328
|
|
|
334
329
|
```lua
|
|
335
|
-
local mysql = require("mysql")
|
|
336
330
|
if mysql.rollback() then
|
|
337
331
|
print("事务回滚成功")
|
|
338
332
|
else
|
|
@@ -345,7 +339,6 @@ end
|
|
|
345
339
|
### 基本数据库操作
|
|
346
340
|
|
|
347
341
|
```lua
|
|
348
|
-
local mysql = require("mysql")
|
|
349
342
|
-- 1. 创建连接配置
|
|
350
343
|
local dbConfig = {
|
|
351
344
|
host = "localhost",
|
|
@@ -381,7 +374,6 @@ end
|
|
|
381
374
|
### 事务处理示例
|
|
382
375
|
|
|
383
376
|
```lua
|
|
384
|
-
local mysql = require("mysql")
|
|
385
377
|
-- 转账操作示例
|
|
386
378
|
local function transferMoney(fromUserId, toUserId, amount)
|
|
387
379
|
if not mysql.beginTransaction() then
|
package/docs/apilua/netCard.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 卡密模块 (NetCard)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `netcard`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
卡密模块提供了卡密验证、备注设置以及键值对存储功能,用于管理网络卡密相关的操作。
|
|
4
6
|
|
|
5
7
|
## 功能概览
|
|
@@ -29,7 +31,6 @@ function isAuthCardMode() end
|
|
|
29
31
|
**示例:**
|
|
30
32
|
|
|
31
33
|
```lua
|
|
32
|
-
local netcard = require("netcard")
|
|
33
34
|
if netcard.isAuthCardMode() then
|
|
34
35
|
print("当前为授权卡密模式,不需要重复调用 verify")
|
|
35
36
|
end
|
|
@@ -64,7 +65,6 @@ function verify(cardNo) end
|
|
|
64
65
|
**示例 1:普通卡密模式**
|
|
65
66
|
|
|
66
67
|
```lua
|
|
67
|
-
local netcard = require("netcard")
|
|
68
68
|
-- 验证卡密
|
|
69
69
|
local cardNo = "ABC123456789"
|
|
70
70
|
local isValid = netcard.verify(cardNo)
|
|
@@ -105,7 +105,6 @@ function getCardInfo() end
|
|
|
105
105
|
**示例:**
|
|
106
106
|
|
|
107
107
|
```lua
|
|
108
|
-
local netcard = require("netcard")
|
|
109
108
|
-- 获取卡密信息
|
|
110
109
|
local cardInfo = netcard.getCardInfo()
|
|
111
110
|
print(ToJsonString(cardInfo))
|
|
@@ -136,7 +135,6 @@ function setCardRemark(remark) end
|
|
|
136
135
|
**示例:**
|
|
137
136
|
|
|
138
137
|
```lua
|
|
139
|
-
local netcard = require("netcard")
|
|
140
138
|
-- 设置卡密备注
|
|
141
139
|
local remark = "测试用户卡密"
|
|
142
140
|
local success = netcard.setCardRemark(remark)
|
|
@@ -175,7 +173,6 @@ function setValue(key, value) end
|
|
|
175
173
|
**示例:**
|
|
176
174
|
|
|
177
175
|
```lua
|
|
178
|
-
local netcard = require("netcard")
|
|
179
176
|
-- 设置键值对
|
|
180
177
|
local key = "userConfig"
|
|
181
178
|
local value = "enableNotification"
|
|
@@ -211,7 +208,6 @@ function getValue(key) end
|
|
|
211
208
|
**示例:**
|
|
212
209
|
|
|
213
210
|
```lua
|
|
214
|
-
local netcard = require("netcard")
|
|
215
211
|
-- 获取键值对
|
|
216
212
|
local key = "userConfig"
|
|
217
213
|
local value = netcard.getValue(key)
|
package/docs/apilua/node.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 节点模块 (Node)
|
|
2
2
|
|
|
3
|
+
模块表是内置全局 `node`,直接调用即可。不要 `require` 宿主模块。
|
|
4
|
+
|
|
3
5
|
用于查找和操作当前界面上的控件节点。
|
|
4
6
|
|
|
5
7
|
**注意**
|
|
@@ -203,7 +205,6 @@ btn:setValue("hello")
|
|
|
203
205
|
| `clickRandom()` | 范围内随机点,不自动滚动 |
|
|
204
206
|
|
|
205
207
|
```lua
|
|
206
|
-
local node = require("node")
|
|
207
208
|
local selector <close> = node.createNodeSelector()
|
|
208
209
|
local btn = selector:label("确定"):type("XCUIElementTypeButton"):getOneNodeInfo(3000)
|
|
209
210
|
|
|
@@ -267,7 +268,6 @@ end
|
|
|
267
268
|
### 登录
|
|
268
269
|
|
|
269
270
|
```lua
|
|
270
|
-
local node = require("node")
|
|
271
271
|
local selector <close> = node.createNodeSelector()
|
|
272
272
|
|
|
273
273
|
local user = selector:type("XCUIElementTypeTextField"):getOneNodeInfo(5000)
|
|
@@ -298,7 +298,6 @@ end
|
|
|
298
298
|
### 列表里靠后的项
|
|
299
299
|
|
|
300
300
|
```lua
|
|
301
|
-
local node = require("node")
|
|
302
301
|
local selector <close> = node.createNodeSelector({ mode = 2 })
|
|
303
302
|
local item = selector:label("第 30 项"):getOneNodeInfo(5000)
|
|
304
303
|
if item then
|