ms-vite-plugin 1.5.12 → 1.5.13
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/build/luaBundle.js +2 -2
- package/dist/build/scriptProtect.js +2 -2
- package/docs/api/ai.md +16 -16
- package/docs/api/config.md +3 -3
- package/docs/api/dotocr.md +2 -2
- package/docs/api/file.md +18 -18
- package/docs/api/hid.md +2 -2
- package/docs/api/hotUpdate.md +2 -2
- package/docs/api/http.md +4 -4
- package/docs/api/image.md +15 -15
- package/docs/api/jbclear.md +12 -12
- package/docs/api/jbdevice.md +25 -25
- package/docs/api/jbdraw.md +139 -0
- package/docs/api/jbdylib.md +6 -6
- package/docs/api/jbpower.md +85 -0
- package/docs/api/jbshell.md +2 -2
- package/docs/api/jbsystem.md +6 -6
- package/docs/api/jbvpn.md +7 -7
- package/docs/api/mysql.md +4 -4
- package/docs/api/netCard.md +4 -73
- package/docs/api/node.md +2 -2
- package/docs/api/opencv.md +116 -116
- package/docs/api/plist.md +2 -2
- package/docs/api/sqlite.md +231 -0
- package/docs/api/system.md +1 -1
- package/docs/api/thread.md +2 -2
- package/docs/api/tomatoocr.md +2 -2
- package/docs/api/yolo.md +2 -2
- package/docs/api/yolocls.md +6 -6
- package/docs/api/zipFile.md +113 -0
- package/docs/apicn/ai.md +16 -16
- package/docs/apicn/config.md +2 -2
- package/docs/apicn/dotocr.md +2 -2
- package/docs/apicn/file.md +16 -16
- package/docs/apicn/hid.md +4 -4
- package/docs/apicn/hotUpdate.md +2 -2
- package/docs/apicn/http.md +4 -4
- package/docs/apicn/image.md +13 -13
- package/docs/apicn/mysql.md +4 -4
- package/docs/apicn/netCard.md +4 -73
- package/docs/apicn/node.md +2 -2
- package/docs/apicn/sqlite.md +197 -0
- package/docs/apicn/system.md +3 -3
- package/docs/apicn/thread.md +2 -2
- package/docs/apicn/yolo.md +2 -2
- package/docs/apicn/yolocls.md +6 -6
- package/docs/apicn/zipFile.md +113 -0
- package/docs/apilua/jbdraw.md +141 -0
- package/docs/apilua/jbpower.md +87 -0
- package/docs/apilua/netCard.md +3 -77
- package/docs/apilua/sqlite.md +204 -0
- package/docs/apilua/zipFile.md +123 -0
- package/docs/apipython/jbdraw.md +147 -0
- package/docs/apipython/jbpower.md +84 -0
- package/docs/apipython/netCard.md +3 -74
- package/docs/apipython/overview.md +1 -1
- package/docs/apipython/sqlite.md +181 -0
- package/docs/apipython/zipFile.md +117 -0
- package/package.json +1 -1
package/docs/apicn/file.md
CHANGED
|
@@ -225,7 +225,7 @@ if (是否删除成功) {
|
|
|
225
225
|
#### 读取文件 - 读取整个文件内容。
|
|
226
226
|
|
|
227
227
|
```typescript
|
|
228
|
-
function 读取文件(文件路径: 字符串): 字符串 |
|
|
228
|
+
function 读取文件(文件路径: 字符串): 字符串 | undefined;
|
|
229
229
|
```
|
|
230
230
|
|
|
231
231
|
**参数:**
|
|
@@ -238,13 +238,13 @@ function 读取文件(文件路径: 字符串): 字符串 | null;
|
|
|
238
238
|
|
|
239
239
|
| 类型 | 描述 |
|
|
240
240
|
| ---------------- | ------------------------------- |
|
|
241
|
-
| `字符串 \|
|
|
241
|
+
| `字符串 \| undefined` | 文件内容;失败或不存在返回 undefined |
|
|
242
242
|
|
|
243
243
|
**示例:**
|
|
244
244
|
|
|
245
245
|
```javascript
|
|
246
246
|
const 文件内容 = $文件.读取文件("/path/to/file.txt");
|
|
247
|
-
if (文件内容 !==
|
|
247
|
+
if (文件内容 !== undefined) {
|
|
248
248
|
$打印信息日志(`文件内容: ${文件内容}`);
|
|
249
249
|
} else {
|
|
250
250
|
$打印警告日志("文件不存在或读取失败");
|
|
@@ -259,7 +259,7 @@ if (文件内容 !== null) {
|
|
|
259
259
|
- res 目录文件只读,不能修改。
|
|
260
260
|
|
|
261
261
|
```typescript
|
|
262
|
-
function 读取资源文件(文件名: 字符串): 字符串 |
|
|
262
|
+
function 读取资源文件(文件名: 字符串): 字符串 | undefined;
|
|
263
263
|
```
|
|
264
264
|
|
|
265
265
|
**参数:**
|
|
@@ -272,7 +272,7 @@ function 读取资源文件(文件名: 字符串): 字符串 | null;
|
|
|
272
272
|
|
|
273
273
|
| 类型 | 描述 |
|
|
274
274
|
| -------------- | --------------------------------------- |
|
|
275
|
-
|
|
|
275
|
+
| `字符串 \| undefined` | 文件内容 文件不存在或读取失败 返回 undefined |
|
|
276
276
|
|
|
277
277
|
**示例:**
|
|
278
278
|
|
|
@@ -292,7 +292,7 @@ if (配置文件内容) {
|
|
|
292
292
|
适用于需要真实文件路径的场景(如模型文件、音视频)。用完后应调用 `清理资源文件`。
|
|
293
293
|
|
|
294
294
|
```typescript
|
|
295
|
-
function 获取资源文件(文件名: 字符串): 字符串 |
|
|
295
|
+
function 获取资源文件(文件名: 字符串): 字符串 | undefined;
|
|
296
296
|
```
|
|
297
297
|
|
|
298
298
|
**参数:**
|
|
@@ -305,7 +305,7 @@ function 获取资源文件(文件名: 字符串): 字符串 | null;
|
|
|
305
305
|
|
|
306
306
|
| 类型 | 描述 |
|
|
307
307
|
| -------------- | ------------------------------------------ |
|
|
308
|
-
|
|
|
308
|
+
| `字符串 \| undefined` | 本地文件绝对路径;失败或不存在时返回 undefined |
|
|
309
309
|
|
|
310
310
|
**示例:**
|
|
311
311
|
|
|
@@ -396,7 +396,7 @@ if (是否追加成功) {
|
|
|
396
396
|
#### 读取指定行 - 读取文件指定行的内容。
|
|
397
397
|
|
|
398
398
|
```typescript
|
|
399
|
-
function 读取指定行(文件路径: 字符串, 行号: 数字): 字符串 |
|
|
399
|
+
function 读取指定行(文件路径: 字符串, 行号: 数字): 字符串 | undefined;
|
|
400
400
|
```
|
|
401
401
|
|
|
402
402
|
**参数:**
|
|
@@ -410,7 +410,7 @@ function 读取指定行(文件路径: 字符串, 行号: 数字): 字符串 | n
|
|
|
410
410
|
|
|
411
411
|
| 类型 | 描述 |
|
|
412
412
|
| ---------------- | ----------------------------- |
|
|
413
|
-
| `字符串 \|
|
|
413
|
+
| `字符串 \| undefined` | 行内容;失败或不存在返回 undefined |
|
|
414
414
|
|
|
415
415
|
**示例:**
|
|
416
416
|
|
|
@@ -422,7 +422,7 @@ $打印信息日志(`第一行内容: ${第一行内容}`);
|
|
|
422
422
|
#### 读取所有行 - 读取文件所有行内容。
|
|
423
423
|
|
|
424
424
|
```typescript
|
|
425
|
-
function 读取所有行(文件路径: 字符串): 数组<字符串> |
|
|
425
|
+
function 读取所有行(文件路径: 字符串): 数组<字符串> | undefined;
|
|
426
426
|
```
|
|
427
427
|
|
|
428
428
|
**参数:**
|
|
@@ -435,13 +435,13 @@ function 读取所有行(文件路径: 字符串): 数组<字符串> | null;
|
|
|
435
435
|
|
|
436
436
|
| 类型 | 描述 |
|
|
437
437
|
| ---------------------- | ----------------------------- |
|
|
438
|
-
| `数组<字符串> \|
|
|
438
|
+
| `数组<字符串> \| undefined` | 所有行内容数组;失败返回 undefined |
|
|
439
439
|
|
|
440
440
|
**示例:**
|
|
441
441
|
|
|
442
442
|
```javascript
|
|
443
443
|
const 所有行内容 = $文件.读取所有行("/path/to/file.txt");
|
|
444
|
-
if (所有行内容 !==
|
|
444
|
+
if (所有行内容 !== undefined) {
|
|
445
445
|
所有行内容.forEach((line, index) => {
|
|
446
446
|
$打印信息日志(`第${index + 1}行: ${line}`);
|
|
447
447
|
});
|
|
@@ -462,7 +462,7 @@ function 删除指定行(文件路径: 字符串, 行号: 数字, 包含内容?:
|
|
|
462
462
|
| ---------- | ------ | -------- | ------ | ----------------------------------- |
|
|
463
463
|
| `文件路径` | 字符串 | 是 | - | 文件路径 |
|
|
464
464
|
| `行号` | 数字 | 是 | - | 行号(-1 表示不按行号删除) |
|
|
465
|
-
| `包含内容` | 字符串 | 否 |
|
|
465
|
+
| `包含内容` | 字符串 | 否 | | 包含的内容;省略则不按内容删除 |
|
|
466
466
|
|
|
467
467
|
**返回值:**
|
|
468
468
|
|
|
@@ -474,7 +474,7 @@ function 删除指定行(文件路径: 字符串, 行号: 数字, 包含内容?:
|
|
|
474
474
|
|
|
475
475
|
```javascript
|
|
476
476
|
// 删除第3行
|
|
477
|
-
$文件.删除指定行("/path/to/file.txt", 3
|
|
477
|
+
$文件.删除指定行("/path/to/file.txt", 3);
|
|
478
478
|
|
|
479
479
|
// 删除包含"error"的行
|
|
480
480
|
$文件.删除指定行("/path/to/file.txt", -1, "error");
|
|
@@ -488,7 +488,7 @@ $文件.删除指定行("/path/to/file.txt", 5, "debug");
|
|
|
488
488
|
#### 计算文件 MD5。
|
|
489
489
|
|
|
490
490
|
```typescript
|
|
491
|
-
function 计算文件MD5(文件路径: 字符串): 字符串 |
|
|
491
|
+
function 计算文件MD5(文件路径: 字符串): 字符串 | undefined;
|
|
492
492
|
```
|
|
493
493
|
|
|
494
494
|
**参数:**
|
|
@@ -501,7 +501,7 @@ function 计算文件MD5(文件路径: 字符串): 字符串 | null;
|
|
|
501
501
|
|
|
502
502
|
| 类型 | 描述 |
|
|
503
503
|
| ---------------- | ------------------------- |
|
|
504
|
-
| `字符串 \|
|
|
504
|
+
| `字符串 \| undefined` | 文件 MD5 值 失败返回 undefined |
|
|
505
505
|
|
|
506
506
|
**示例:**
|
|
507
507
|
|
package/docs/apicn/hid.md
CHANGED
|
@@ -1125,13 +1125,13 @@ $HID.APP切入前台();
|
|
|
1125
1125
|
function 当前打开应用信息(): {
|
|
1126
1126
|
name: 字符串;
|
|
1127
1127
|
bundleId: 字符串;
|
|
1128
|
-
} |
|
|
1128
|
+
} | undefined;
|
|
1129
1129
|
```
|
|
1130
1130
|
|
|
1131
1131
|
**返回值:**
|
|
1132
1132
|
| 类型 | 描述 |
|
|
1133
1133
|
| ---- | ---- |
|
|
1134
|
-
| 对象 \|
|
|
1134
|
+
| 对象 \| undefined | 当前打开应用信息或 undefined(如果不可用) |
|
|
1135
1135
|
|
|
1136
1136
|
**返回对象属性:**
|
|
1137
1137
|
| 属性 | 类型 | 描述 |
|
|
@@ -1179,13 +1179,13 @@ $HID.设置剪切板内容("你好,世界!");
|
|
|
1179
1179
|
获取当前剪切板内容。
|
|
1180
1180
|
|
|
1181
1181
|
```typescript
|
|
1182
|
-
function 获取剪切板内容():
|
|
1182
|
+
function 获取剪切板内容(): 字符串;
|
|
1183
1183
|
```
|
|
1184
1184
|
|
|
1185
1185
|
**返回值:**
|
|
1186
1186
|
| 类型 | 描述 |
|
|
1187
1187
|
| ---- | ---- |
|
|
1188
|
-
| 字符串
|
|
1188
|
+
| 字符串 | 剪切板内容,空则为 `""` |
|
|
1189
1189
|
|
|
1190
1190
|
**示例:**
|
|
1191
1191
|
|
package/docs/apicn/hotUpdate.md
CHANGED
|
@@ -42,7 +42,7 @@ interface 热更新服务器响应数据结构 {
|
|
|
42
42
|
dialog: 布尔值; // 是否用对话框展示
|
|
43
43
|
msg: 字符串; // 对话框消息
|
|
44
44
|
force: 布尔值; // 是否强制更新
|
|
45
|
-
md5
|
|
45
|
+
md5: 字符串 | null; // 更新包 MD5;没有时为 null
|
|
46
46
|
}
|
|
47
47
|
```
|
|
48
48
|
|
|
@@ -56,7 +56,7 @@ interface 热更新服务器响应数据结构 {
|
|
|
56
56
|
| `dialog` | 布尔值 | 是 | - | 是否用对话框展示 |
|
|
57
57
|
| `msg` | 字符串 | 是 | - | 对话框消息 |
|
|
58
58
|
| `force` | 布尔值 | 是 | - | 是否强制更新 |
|
|
59
|
-
| `md5` | 字符串 | 否 | - | 更新包 MD5
|
|
59
|
+
| `md5` | 字符串 \| null | 否 | - | 更新包 MD5;没有时为 `null` |
|
|
60
60
|
|
|
61
61
|
## API 参考
|
|
62
62
|
|
package/docs/apicn/http.md
CHANGED
|
@@ -110,7 +110,7 @@ function 发送请求(params: {
|
|
|
110
110
|
* 响应体
|
|
111
111
|
*/
|
|
112
112
|
body: 字符串;
|
|
113
|
-
};
|
|
113
|
+
} | undefined;
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
**参数:**
|
|
@@ -204,7 +204,7 @@ function 发送GET请求(
|
|
|
204
204
|
请求参数?: 字典<字符串>,
|
|
205
205
|
超时时间?: 数字,
|
|
206
206
|
请求头?: 字典<字符串>,
|
|
207
|
-
): 字符串 |
|
|
207
|
+
): 字符串 | undefined;
|
|
208
208
|
```
|
|
209
209
|
|
|
210
210
|
**参数:**
|
|
@@ -255,7 +255,7 @@ function 发送POST请求(
|
|
|
255
255
|
请求文件?: 字典<字符串>,
|
|
256
256
|
超时时间?: 数字,
|
|
257
257
|
请求头?: 字典<字符串>,
|
|
258
|
-
): 字符串 |
|
|
258
|
+
): 字符串 | undefined;
|
|
259
259
|
```
|
|
260
260
|
|
|
261
261
|
**参数:**
|
|
@@ -303,7 +303,7 @@ function 发送JSON请求(
|
|
|
303
303
|
请求JSON数据?: 字典<任意类型>,
|
|
304
304
|
超时时间?: 数字,
|
|
305
305
|
请求头?: 字典<字符串>,
|
|
306
|
-
): 字符串 |
|
|
306
|
+
): 字符串 | undefined;
|
|
307
307
|
```
|
|
308
308
|
|
|
309
309
|
**参数:**
|
package/docs/apicn/image.md
CHANGED
|
@@ -24,7 +24,7 @@ function 截取屏幕(
|
|
|
24
24
|
区域左上角Y坐标?: 数字,
|
|
25
25
|
区域右下角X坐标?: 数字,
|
|
26
26
|
区域右下角Y坐标?: 数字,
|
|
27
|
-
): 字符串 |
|
|
27
|
+
): 字符串 | undefined;
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
**参数:**
|
|
@@ -40,7 +40,7 @@ function 截取屏幕(
|
|
|
40
40
|
|
|
41
41
|
| 类型 | 描述 |
|
|
42
42
|
| -------- | -------------------------------- |
|
|
43
|
-
| `字符串` | 截图的图片 ID,失败时返回 `
|
|
43
|
+
| `字符串` | 截图的图片 ID,失败时返回 `undefined` |
|
|
44
44
|
|
|
45
45
|
**示例:**
|
|
46
46
|
|
|
@@ -73,7 +73,7 @@ if (图片ID) {
|
|
|
73
73
|
### 读取图片 - 从文件路径或图片ID读取图片。
|
|
74
74
|
|
|
75
75
|
```typescript
|
|
76
|
-
function 读取图片(图片路径: 字符串): 字符串 |
|
|
76
|
+
function 读取图片(图片路径: 字符串): 字符串 | undefined;
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
**参数:**
|
|
@@ -86,7 +86,7 @@ function 读取图片(图片路径: 字符串): 字符串 | null;
|
|
|
86
86
|
|
|
87
87
|
| 类型 | 描述 |
|
|
88
88
|
| -------- | -------------------------- |
|
|
89
|
-
| `字符串` | 图片 ID,失败时返回 `
|
|
89
|
+
| `字符串` | 图片 ID,失败时返回 `undefined` |
|
|
90
90
|
|
|
91
91
|
**示例:**
|
|
92
92
|
|
|
@@ -186,7 +186,7 @@ if (图片ID) {
|
|
|
186
186
|
### 获取图片大小 - 获取图片尺寸。
|
|
187
187
|
|
|
188
188
|
```typescript
|
|
189
|
-
function 获取图片大小(图片ID: 字符串): { width: 数字; height: 数字 } |
|
|
189
|
+
function 获取图片大小(图片ID: 字符串): { width: 数字; height: 数字 } | undefined;
|
|
190
190
|
```
|
|
191
191
|
|
|
192
192
|
**参数:**
|
|
@@ -199,7 +199,7 @@ function 获取图片大小(图片ID: 字符串): { width: 数字; height: 数
|
|
|
199
199
|
|
|
200
200
|
| 类型 | 描述 |
|
|
201
201
|
| --------------------------------------- | -------------------------------------------------------------- |
|
|
202
|
-
| `{ width: 数字; height: 数字 } \|
|
|
202
|
+
| `{ width: 数字; height: 数字 } \| undefined` | 图片尺寸对象,包含 `width` 和 `height` 属性,失败时返回 `undefined` |
|
|
203
203
|
|
|
204
204
|
**示例:**
|
|
205
205
|
|
|
@@ -938,7 +938,7 @@ if (图片ID) {
|
|
|
938
938
|
### 旋转图片
|
|
939
939
|
|
|
940
940
|
```typescript
|
|
941
|
-
function 旋转图片(图片ID: 字符串, 角度: 数字): 字符串 |
|
|
941
|
+
function 旋转图片(图片ID: 字符串, 角度: 数字): 字符串 | undefined;
|
|
942
942
|
```
|
|
943
943
|
|
|
944
944
|
**参数:**
|
|
@@ -952,7 +952,7 @@ function 旋转图片(图片ID: 字符串, 角度: 数字): 字符串 | null;
|
|
|
952
952
|
|
|
953
953
|
| 类型 | 描述 |
|
|
954
954
|
| ---------------- | ----------------------------------- |
|
|
955
|
-
| `字符串 \|
|
|
955
|
+
| `字符串 \| undefined` | 旋转后的新图片 ID 失败时返回 `undefined` |
|
|
956
956
|
|
|
957
957
|
**示例:**
|
|
958
958
|
|
|
@@ -973,7 +973,7 @@ if (图片ID) {
|
|
|
973
973
|
### 灰度化图片
|
|
974
974
|
|
|
975
975
|
```typescript
|
|
976
|
-
function 灰度化图片(图片ID: 字符串):
|
|
976
|
+
function 灰度化图片(图片ID: 字符串): 字符串 | undefined;
|
|
977
977
|
```
|
|
978
978
|
|
|
979
979
|
**参数:**
|
|
@@ -1007,7 +1007,7 @@ if (图片ID) {
|
|
|
1007
1007
|
### 二值化图片
|
|
1008
1008
|
|
|
1009
1009
|
```typescript
|
|
1010
|
-
function 二值化图片(图片ID: 字符串, 阈值: 数字):
|
|
1010
|
+
function 二值化图片(图片ID: 字符串, 阈值: 数字): 字符串 | undefined;
|
|
1011
1011
|
```
|
|
1012
1012
|
|
|
1013
1013
|
**参数:**
|
|
@@ -1080,7 +1080,7 @@ if (图片ID) {
|
|
|
1080
1080
|
### 扫码条码(支持一维码和二维码)
|
|
1081
1081
|
|
|
1082
1082
|
```typescript
|
|
1083
|
-
function 扫描条码(图片ID: 字符串): 字符串 |
|
|
1083
|
+
function 扫描条码(图片ID: 字符串): 字符串 | undefined;
|
|
1084
1084
|
```
|
|
1085
1085
|
|
|
1086
1086
|
**参数:**
|
|
@@ -1093,7 +1093,7 @@ function 扫描条码(图片ID: 字符串): 字符串 | null;
|
|
|
1093
1093
|
|
|
1094
1094
|
| 类型 | 描述 |
|
|
1095
1095
|
| ---------------- | --------------------------- |
|
|
1096
|
-
| `字符串 \|
|
|
1096
|
+
| `字符串 \| undefined` | 扫码结果,失败时返回 `undefined` |
|
|
1097
1097
|
|
|
1098
1098
|
**示例:**
|
|
1099
1099
|
|
|
@@ -1115,7 +1115,7 @@ if (图片ID) {
|
|
|
1115
1115
|
### base64 转图片
|
|
1116
1116
|
|
|
1117
1117
|
```typescript
|
|
1118
|
-
function base64转图片(base64: 字符串):
|
|
1118
|
+
function base64转图片(base64: 字符串): 字符串 | undefined;
|
|
1119
1119
|
```
|
|
1120
1120
|
|
|
1121
1121
|
**参数:**
|
package/docs/apicn/mysql.md
CHANGED
|
@@ -50,9 +50,9 @@ interface MySQL连接配置 {
|
|
|
50
50
|
interface MySQL查询结果 {
|
|
51
51
|
rows: 数组<字典<任意类型>>; // 查询结果数据行
|
|
52
52
|
affectedRows: 数字; // 受影响的行数
|
|
53
|
-
insertId
|
|
53
|
+
insertId: 数字 | null; // 插入ID(仅适用于INSERT操作);没有插入时为 null
|
|
54
54
|
success: 布尔值; // 查询是否成功
|
|
55
|
-
error
|
|
55
|
+
error: 字符串 | null; // 错误信息;成功时为 null
|
|
56
56
|
}
|
|
57
57
|
```
|
|
58
58
|
|
|
@@ -62,9 +62,9 @@ interface MySQL查询结果 {
|
|
|
62
62
|
| -------------- | -------------------- | -------- | ------ | ------------------------------- |
|
|
63
63
|
| `rows` | 数组<字典<任意类型>> | 否 | | 查询结果数据行 |
|
|
64
64
|
| `affectedRows` | 数字 | 否 | | 受影响的行数 |
|
|
65
|
-
| `insertId` | 数字
|
|
65
|
+
| `insertId` | 数字 \| null | 否 | | 插入 ID;没有插入时为 `null` |
|
|
66
66
|
| `success` | 布尔值 | 否 | | 查询是否成功 |
|
|
67
|
-
| `error` | 字符串
|
|
67
|
+
| `error` | 字符串 \| null | 否 | | 错误信息;成功时为 `null` |
|
|
68
68
|
|
|
69
69
|
## API 参考
|
|
70
70
|
|
package/docs/apicn/netCard.md
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
# 卡密模块 ($卡密)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
卡密模块提供了卡密验证和备注设置功能,用于管理网络卡密相关的操作。
|
|
4
4
|
|
|
5
5
|
## 功能概览
|
|
6
6
|
|
|
7
7
|
- **卡密验证**: 验证卡密的有效性
|
|
8
8
|
- **备注管理**: 设置和管理卡密备注信息
|
|
9
|
-
- **云变量存储**: 提供键值对形式的数据存储和读取功能
|
|
10
9
|
|
|
11
10
|
## 注意事项
|
|
12
11
|
|
|
13
12
|
1. **卡密安全**: 卡密信息应当妥善保管,避免在日志中明文输出
|
|
14
|
-
2. **普通卡密模式**: 需要先调用 `$卡密.验证(卡密)`
|
|
13
|
+
2. **普通卡密模式**: 需要先调用 `$卡密.验证(卡密)` 验证卡密,验证通过后才能调用获取卡密信息和备注等接口
|
|
15
14
|
3. **授权卡密模式**: App 打开加密 UI 或运行脚本前会完成授权和卡密验证,脚本中不需要重复让用户输入卡密,也不需要重复调用 `$卡密.验证`
|
|
16
15
|
4. **兼容旧脚本**: 授权卡密模式下调用 `$卡密.验证` 会直接返回 `true`,用于兼容原来已经写了验证逻辑的脚本
|
|
17
16
|
|
|
@@ -73,7 +72,7 @@ function 验证(卡密: 字符串): 布尔值;
|
|
|
73
72
|
|
|
74
73
|
**说明:**
|
|
75
74
|
|
|
76
|
-
|
|
75
|
+
普通卡密模式下,该方法会请求普通卡密验证接口,验证成功后才能继续使用卡密信息和备注相关能力。
|
|
77
76
|
|
|
78
77
|
授权卡密模式下,App 层已经完成授权和卡密验证,脚本侧不需要重复调用该方法;如果旧脚本仍然调用,方法会直接返回 `true`。
|
|
79
78
|
|
|
@@ -110,7 +109,7 @@ if (!$卡密.是否授权卡密模式()) {
|
|
|
110
109
|
#### 获取卡密信息
|
|
111
110
|
|
|
112
111
|
```typescript
|
|
113
|
-
function 获取卡密信息(): 卡密信息 |
|
|
112
|
+
function 获取卡密信息(): 卡密信息 | undefined;
|
|
114
113
|
```
|
|
115
114
|
|
|
116
115
|
**返回值:**
|
|
@@ -168,71 +167,3 @@ if (success) {
|
|
|
168
167
|
$打印错误日志("备注设置失败");
|
|
169
168
|
}
|
|
170
169
|
```
|
|
171
|
-
|
|
172
|
-
### 云变量
|
|
173
|
-
|
|
174
|
-
#### 设置值 - 设置键值对
|
|
175
|
-
|
|
176
|
-
```typescript
|
|
177
|
-
function 设置值(键: 字符串, 值: 字符串): 字符串;
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
**参数说明:**
|
|
181
|
-
|
|
182
|
-
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
183
|
-
| ------ | ------ | -------- | ------ | ---------- |
|
|
184
|
-
| `键` | 字符串 | 是 | | 存储的键名 |
|
|
185
|
-
| `值` | 字符串 | 是 | | 存储的值 |
|
|
186
|
-
|
|
187
|
-
**返回值:**
|
|
188
|
-
|
|
189
|
-
| 类型 | 描述 |
|
|
190
|
-
| -------- | --------------------------------------------- |
|
|
191
|
-
| `字符串` | 成功时返回设置的 value 值,失败时返回空字符串 |
|
|
192
|
-
|
|
193
|
-
**示例:**
|
|
194
|
-
|
|
195
|
-
```typescript
|
|
196
|
-
// 设置键值对
|
|
197
|
-
const key = "userConfig";
|
|
198
|
-
const value = "enableNotification";
|
|
199
|
-
const result = $卡密.设置值(key, value);
|
|
200
|
-
|
|
201
|
-
if (result === value) {
|
|
202
|
-
$打印信息日志(`成功设置 ${key}: ${value}`);
|
|
203
|
-
} else {
|
|
204
|
-
$打印错误日志("设置失败");
|
|
205
|
-
}
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
#### 获取值 - 获取键值对
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
function 获取值(键: 字符串): 字符串;
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
**参数说明:**
|
|
215
|
-
|
|
216
|
-
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
217
|
-
| ------ | ------ | -------- | ------ | ------------ |
|
|
218
|
-
| `键` | 字符串 | 是 | | 要获取的键名 |
|
|
219
|
-
|
|
220
|
-
**返回值:**
|
|
221
|
-
|
|
222
|
-
| 类型 | 描述 |
|
|
223
|
-
| -------- | ------------------------------------------------ |
|
|
224
|
-
| `字符串` | 成功时返回对应的值,失败或键不存在时返回空字符串 |
|
|
225
|
-
|
|
226
|
-
**示例:**
|
|
227
|
-
|
|
228
|
-
```typescript
|
|
229
|
-
// 获取键值对
|
|
230
|
-
const key = "userConfig";
|
|
231
|
-
const value = $卡密.获取值(key);
|
|
232
|
-
|
|
233
|
-
if (value) {
|
|
234
|
-
$打印信息日志(`获取到配置: ${key} = ${value}`);
|
|
235
|
-
} else {
|
|
236
|
-
$打印警告日志(`配置 ${key} 不存在或获取失败"`);
|
|
237
|
-
}
|
|
238
|
-
```
|
package/docs/apicn/node.md
CHANGED
|
@@ -100,9 +100,9 @@ const listPage = $创建节点选择器({ mode: 2 });
|
|
|
100
100
|
| `释放内存()` | 释放内存 |
|
|
101
101
|
| `加载节点数据(timeout?)` | 重新加载界面节点,默认超时 5000ms |
|
|
102
102
|
| `清除选择器()` | 清除已设置的筛选条件 |
|
|
103
|
-
| `xml(timeout?)` | 获取界面 XML,失败返回 `
|
|
103
|
+
| `xml(timeout?)` | 获取界面 XML,失败返回 `undefined` |
|
|
104
104
|
| `获取节点信息(timeout?)` | 获取所有匹配节点 |
|
|
105
|
-
| `获取一个节点信息(timeout?)` | 获取第一个匹配节点,没有则 `
|
|
105
|
+
| `获取一个节点信息(timeout?)` | 获取第一个匹配节点,没有则 `undefined` |
|
|
106
106
|
|
|
107
107
|
超时单位均为毫秒,默认 `5000`。
|
|
108
108
|
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# SQLite 数据库模块 ($SQLite数据库)
|
|
2
|
+
|
|
3
|
+
SQLite 模块提供本地数据库文件的打开、查询、执行和事务。可以同时打开多个库,每个库用 `打开` 返回的句柄操作。
|
|
4
|
+
|
|
5
|
+
## 功能概览
|
|
6
|
+
|
|
7
|
+
- **多库句柄**: `打开` 返回句柄,后续方法把句柄作为第一个参数
|
|
8
|
+
- **数据查询**: 执行 SELECT 查询
|
|
9
|
+
- **数据更新**: 执行 CREATE、INSERT、UPDATE、DELETE
|
|
10
|
+
- **事务支持**: `开始事务` / `提交事务` / `回滚事务`
|
|
11
|
+
- **参数绑定**: 使用 `?` 占位,防止 SQL 注入
|
|
12
|
+
|
|
13
|
+
## 注意事项
|
|
14
|
+
|
|
15
|
+
1. **文件路径**: 路径必须是绝对路径,与 `$文件` 模块相同。相对路径会打开失败。
|
|
16
|
+
2. **内存库**: 路径传 `":memory:"` 打开内存数据库。
|
|
17
|
+
3. **句柄**: 先 `打开` 再查询;脚本结束会关闭本次运行打开的全部句柄,仍建议用完 `关闭`。
|
|
18
|
+
4. **BLOB**: 第一版不把 BLOB 转成字符串,读到的该格为 `null`。
|
|
19
|
+
5. **锁定等待**: 数据库被占用时最多等待 5 秒。
|
|
20
|
+
|
|
21
|
+
## 类型定义
|
|
22
|
+
|
|
23
|
+
### SQLite查询结果
|
|
24
|
+
|
|
25
|
+
查询 / 执行结果。
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
interface SQLite查询结果 {
|
|
29
|
+
rows: 数组<字典<任意类型>>;
|
|
30
|
+
affectedRows: 数字;
|
|
31
|
+
insertId: 数字 | null;
|
|
32
|
+
success: 布尔值;
|
|
33
|
+
error: 字符串 | null;
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**数据类型说明:**
|
|
38
|
+
|
|
39
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
40
|
+
| -------------- | -------------------- | -------- | ------ | ---------------------------- |
|
|
41
|
+
| `rows` | 数组<字典<任意类型>> | 否 | | 查询结果数据行 |
|
|
42
|
+
| `affectedRows` | 数字 | 否 | | 受影响的行数 |
|
|
43
|
+
| `insertId` | 数字 \| null | 否 | | 本次连接最近一次插入的 rowid;没有插入时为 `null` |
|
|
44
|
+
| `success` | 布尔值 | 否 | | 是否成功 |
|
|
45
|
+
| `error` | 字符串 \| null | 否 | | 错误信息;成功时为 `null` |
|
|
46
|
+
|
|
47
|
+
## API 参考
|
|
48
|
+
|
|
49
|
+
### 连接管理
|
|
50
|
+
|
|
51
|
+
#### 打开 - 打开数据库
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
function 打开(路径: 字符串): 字符串 | undefined;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**参数:**
|
|
58
|
+
|
|
59
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
60
|
+
| ------ | ------ | -------- | ------ | ------------------------- |
|
|
61
|
+
| `路径` | 字符串 | 是 | | 绝对路径,或 `":memory:"` |
|
|
62
|
+
|
|
63
|
+
**返回值:**
|
|
64
|
+
|
|
65
|
+
| 类型 | 描述 |
|
|
66
|
+
| ---------------- | ---------------------------- |
|
|
67
|
+
| `字符串 \| undefined` | 成功返回句柄,失败返回 `undefined` |
|
|
68
|
+
|
|
69
|
+
**示例:**
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
const 路径 = $文件.获取内部目录("documents") + "/app.db";
|
|
73
|
+
const 库 = $SQLite数据库.打开(路径);
|
|
74
|
+
if (!库) {
|
|
75
|
+
$打印错误日志("打开失败");
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### 关闭 - 关闭数据库
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
function 关闭(句柄: 字符串): 无返回值;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**参数:**
|
|
86
|
+
|
|
87
|
+
| 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
|
|
88
|
+
| ------ | ------ | -------- | ------ | ----------------- |
|
|
89
|
+
| `句柄` | 字符串 | 是 | | `打开` 返回的句柄 |
|
|
90
|
+
|
|
91
|
+
**示例:**
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
94
|
+
$SQLite数据库.关闭(库);
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
#### 是否已打开 - 检查句柄是否仍打开
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
function 是否已打开(句柄: 字符串): 布尔值;
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**返回值:**
|
|
104
|
+
|
|
105
|
+
| 类型 | 描述 |
|
|
106
|
+
| ------ | ----------------- |
|
|
107
|
+
| `布尔值` | 仍打开返回 `true` |
|
|
108
|
+
|
|
109
|
+
**示例:**
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
if ($SQLite数据库.是否已打开(库)) {
|
|
113
|
+
$打印信息日志("数据库已打开");
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 数据操作
|
|
118
|
+
|
|
119
|
+
#### 查询 - 执行查询
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
function 查询(句柄: 字符串, sql语句: 字符串, 参数?: 数组<任意类型>): SQLite查询结果;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**示例:**
|
|
126
|
+
|
|
127
|
+
```javascript
|
|
128
|
+
const 查询结果 = $SQLite数据库.查询(库, "SELECT * FROM t WHERE id = ?", [1]);
|
|
129
|
+
if (查询结果.success) {
|
|
130
|
+
$打印信息日志(`查询到 ${查询结果.rows.length} 条记录`);
|
|
131
|
+
} else {
|
|
132
|
+
$打印错误日志(`查询失败: ${查询结果.error}`);
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
#### 执行 - 执行更新
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
function 执行(句柄: 字符串, sql语句: 字符串, 参数?: 数组<任意类型>): SQLite查询结果;
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**示例:**
|
|
143
|
+
|
|
144
|
+
```javascript
|
|
145
|
+
$SQLite数据库.执行(
|
|
146
|
+
库,
|
|
147
|
+
"CREATE TABLE IF NOT EXISTS t (id INTEGER PRIMARY KEY, name TEXT)",
|
|
148
|
+
);
|
|
149
|
+
const 插入结果 = $SQLite数据库.执行(库, "INSERT INTO t(name) VALUES (?)", [
|
|
150
|
+
"a",
|
|
151
|
+
]);
|
|
152
|
+
if (插入结果.success) {
|
|
153
|
+
$打印信息日志(`插入 ID: ${插入结果.insertId}`);
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 事务管理
|
|
158
|
+
|
|
159
|
+
#### 开始事务 / 提交事务 / 回滚事务
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
function 开始事务(句柄: 字符串): 布尔值;
|
|
163
|
+
function 提交事务(句柄: 字符串): 布尔值;
|
|
164
|
+
function 回滚事务(句柄: 字符串): 布尔值;
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**示例:**
|
|
168
|
+
|
|
169
|
+
```javascript
|
|
170
|
+
if ($SQLite数据库.开始事务(库)) {
|
|
171
|
+
$SQLite数据库.执行(库, "INSERT INTO t(name) VALUES (?)", ["a"]);
|
|
172
|
+
$SQLite数据库.执行(库, "INSERT INTO t(name) VALUES (?)", ["b"]);
|
|
173
|
+
if (!$SQLite数据库.提交事务(库)) {
|
|
174
|
+
$SQLite数据库.回滚事务(库);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## 完整使用示例
|
|
180
|
+
|
|
181
|
+
```javascript
|
|
182
|
+
const 库 = $SQLite数据库.打开($文件.获取内部目录("documents") + "/app.db");
|
|
183
|
+
if (!库) {
|
|
184
|
+
$打印错误日志("打开失败");
|
|
185
|
+
} else {
|
|
186
|
+
$SQLite数据库.执行(
|
|
187
|
+
库,
|
|
188
|
+
"CREATE TABLE IF NOT EXISTS t (id INTEGER PRIMARY KEY, name TEXT)",
|
|
189
|
+
);
|
|
190
|
+
$SQLite数据库.执行(库, "INSERT INTO t(name) VALUES (?)", ["a"]);
|
|
191
|
+
const 结果 = $SQLite数据库.查询(库, "SELECT * FROM t WHERE id = ?", [1]);
|
|
192
|
+
if (结果.success) {
|
|
193
|
+
$打印信息日志(JSON.stringify(结果.rows));
|
|
194
|
+
}
|
|
195
|
+
$SQLite数据库.关闭(库);
|
|
196
|
+
}
|
|
197
|
+
```
|