@doubao-apps/ai 0.0.33 → 0.0.34
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/README.md +1 -32
- package/dist/733.js +7 -15
- package/dist/cli.js +1 -1
- package/dist/manifest.json +3 -11
- package/dist/skills/doubao-apps-dev/SKILL.md +103 -227
- package/dist/skills/doubao-apps-dev/references/examples/common-patterns.md +80 -66
- package/dist/skills/doubao-apps-dev/references/examples/component-basics.md +24 -3
- package/dist/skills/doubao-apps-dev/references/examples/component-recipes.md +71 -0
- package/dist/skills/doubao-apps-dev/references/examples/open-api-recipes.md +203 -0
- package/dist/skills/doubao-apps-dev/references/guides/component-development.md +66 -42
- package/dist/skills/doubao-apps-dev/references/guides/expired-widget.md +113 -0
- package/dist/skills/doubao-apps-dev/references/guides/mcp-ui.md +275 -0
- package/dist/skills/doubao-apps-dev/references/guides/performance-optimization.md +24 -7
- package/dist/skills/doubao-apps-dev/references/reference/components-quick-ref.md +18 -7
- package/dist/skills/doubao-apps-dev/references/reference/framework-api-quick-ref.md +125 -107
- package/dist/skills/doubao-apps-dev/references/reference/open-api/01-/345/237/272/347/241/200.md +136 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/02-/347/263/273/347/273/237.md +257 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/03-/345/256/232/344/275/215.md +326 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/04-/345/255/230/345/202/250.md +284 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/05-/350/267/257/347/224/261.md +162 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/06-/344/272/244/344/272/222.md +290 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/07-/350/276/223/345/205/245.md +63 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/08-/347/275/221/347/273/234.md +124 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/09-/345/252/222/344/275/223.md +192 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/10-/344/270/232/345/212/241/350/203/275/345/212/233.md +431 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/11-/347/231/273/345/275/225.md +110 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/12-/346/224/257/344/273/230.md +224 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/13-/346/225/260/346/215/256/345/210/206/346/236/220.md +43 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/14-/350/223/235/347/211/231.md +598 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/15-wi-fi.md +210 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/16-/345/212/240/351/200/237/345/272/246/350/256/241.md +87 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/17-ibeacon.md +97 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/18-/347/275/227/347/233/230.md +78 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/19-/350/256/276/345/244/207/346/226/271/345/220/221.md +86 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/20-/351/231/200/350/236/272/344/273/252.md +87 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/21-/350/256/276/345/244/207-/347/275/221/347/273/234.md +102 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/22-/347/237/255/344/277/241.md +40 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/23-/346/227/240/351/232/234/347/242/215.md +40 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/24-/345/237/272/347/241/200/344/277/241/346/201/257.md +86 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/25-/347/224/265/346/261/240.md +63 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/26-/346/227/245/345/216/206.md +95 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/27-/345/211/252/350/264/264/346/235/277.md +64 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/28-/350/201/224/347/263/273/344/272/272.md +101 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/29-/345/212/240/345/257/206.md +43 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/30-/347/224/265/350/257/235.md +36 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/31-/346/211/253/347/240/201.md +58 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/32-/345/261/217/345/271/225.md +136 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/33-/351/234/207/345/212/250.md +62 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/34-/346/226/207/344/273/266/347/263/273/347/273/237.md +73 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api/README.md +34 -0
- package/dist/skills/doubao-apps-dev/references/reference/open-api.md +384 -2
- package/dist/skills/doubao-apps-dev/references/rules/dos-and-donts.md +44 -27
- package/dist/skills/h5-to-doubao/SKILL.md +8 -4
- package/dist/skills/weixin-to-doubao/SKILL.md +8 -4
- package/dist/skills/weixin-to-doubao/assets/migration-checklist-template.md +1 -1
- package/package.json +2 -3
- package/dist/contexts/doubao-apps-dev/AGENTS.md +0 -300
- package/dist/contexts/doubao-apps-dev/CLAUDE.md +0 -31
- package/dist/contexts/doubao-apps-dev/references/examples/common-patterns.md +0 -589
- package/dist/contexts/doubao-apps-dev/references/examples/component-basics.md +0 -526
- package/dist/contexts/doubao-apps-dev/references/guides/best-practices.md +0 -571
- package/dist/contexts/doubao-apps-dev/references/guides/component-development.md +0 -891
- package/dist/contexts/doubao-apps-dev/references/guides/performance-optimization.md +0 -402
- package/dist/contexts/doubao-apps-dev/references/guides/troubleshooting.md +0 -287
- package/dist/contexts/doubao-apps-dev/references/reference/components-quick-ref.md +0 -103
- package/dist/contexts/doubao-apps-dev/references/reference/framework-api-quick-ref.md +0 -550
- package/dist/contexts/doubao-apps-dev/references/reference/open-api/README.md +0 -8
- package/dist/contexts/doubao-apps-dev/references/reference/open-api.md +0 -11
- package/dist/contexts/doubao-apps-dev/references/rules/dos-and-donts.md +0 -467
package/dist/skills/doubao-apps-dev/references/reference/open-api/07-/350/276/223/345/205/245.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Open API: 输入
|
|
2
|
+
|
|
3
|
+
键盘和输入框选区能力。
|
|
4
|
+
|
|
5
|
+
[返回目录](./README.md) | [返回速查](../open-api.md)
|
|
6
|
+
|
|
7
|
+
## 速查
|
|
8
|
+
|
|
9
|
+
| API | 说明 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| [hideKeyboard](#hidekeyboard) | 收起当前键盘。 |
|
|
12
|
+
| [getSelectedTextRange](#getselectedtextrange) | 获取当前输入框的选区范围。 |
|
|
13
|
+
|
|
14
|
+
## API 详情
|
|
15
|
+
|
|
16
|
+
<a id="hidekeyboard"></a>
|
|
17
|
+
### hideKeyboard()
|
|
18
|
+
|
|
19
|
+
收起当前键盘。
|
|
20
|
+
|
|
21
|
+
## 代码示例
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { hideKeyboard } from '@doubao-apps/framework/api';
|
|
25
|
+
|
|
26
|
+
await hideKeyboard({});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 入参
|
|
30
|
+
|
|
31
|
+
无入参。
|
|
32
|
+
|
|
33
|
+
## 返回值
|
|
34
|
+
|
|
35
|
+
返回 `Promise<object>`。
|
|
36
|
+
|
|
37
|
+
<a id="getselectedtextrange"></a>
|
|
38
|
+
### getSelectedTextRange()
|
|
39
|
+
|
|
40
|
+
获取当前输入框的选区范围。
|
|
41
|
+
|
|
42
|
+
## 代码示例
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
import { getSelectedTextRange } from '@doubao-apps/framework/api';
|
|
46
|
+
|
|
47
|
+
const { start, end } = await getSelectedTextRange();
|
|
48
|
+
|
|
49
|
+
console.log(start, end);
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 入参
|
|
53
|
+
|
|
54
|
+
无入参。
|
|
55
|
+
|
|
56
|
+
## 返回值
|
|
57
|
+
|
|
58
|
+
返回 `Promise<GetSelectedTextRangeResult>`。
|
|
59
|
+
|
|
60
|
+
|字段名|类型|说明|
|
|
61
|
+
|---|---|---|
|
|
62
|
+
|end|`number`|选区结束位置。|
|
|
63
|
+
|start|`number`|选区起始位置。|
|
package/dist/skills/doubao-apps-dev/references/reference/open-api/08-/347/275/221/347/273/234.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Open API: 网络
|
|
2
|
+
|
|
3
|
+
网络请求与 WebSocket。
|
|
4
|
+
|
|
5
|
+
[返回目录](./README.md) | [返回速查](../open-api.md)
|
|
6
|
+
|
|
7
|
+
## 速查
|
|
8
|
+
|
|
9
|
+
| API | 说明 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| [request](#request) | 发起网络请求。 |
|
|
12
|
+
| [connectSocket](#connectsocket) | 创建一个 WebSocket 连接,并返回可操作该连接的 SocketTask。 |
|
|
13
|
+
|
|
14
|
+
## API 详情
|
|
15
|
+
|
|
16
|
+
<a id="request"></a>
|
|
17
|
+
### request()
|
|
18
|
+
|
|
19
|
+
发起网络请求。
|
|
20
|
+
|
|
21
|
+
`request` 本身不接受泛型参数;如需业务数据类型,请读取 `result.data` 后再做类型收窄或断言。
|
|
22
|
+
|
|
23
|
+
## 代码示例
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { request } from '@doubao-apps/framework/api';
|
|
27
|
+
|
|
28
|
+
const result = await request({
|
|
29
|
+
url: 'https://postman-echo.com/post',
|
|
30
|
+
method: 'POST',
|
|
31
|
+
dataType: 'json',
|
|
32
|
+
header: { 'content-type': 'application/json' },
|
|
33
|
+
data: { hello: 'world' }
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
console.log(result.statusCode, result.data);
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 入参
|
|
40
|
+
|
|
41
|
+
|参数名|类型|必填|说明|
|
|
42
|
+
|---|---|---|---|
|
|
43
|
+
|data|`string \| Record<string, any> \| ArrayBuffer`|否|请求体数据。<br><br>传给服务器的数据最终会是 `String` 或 `ArrayBuffer`:<br>- 若 `data` 是 `string` 或 `ArrayBuffer`,直接使用;<br>- 若 `header['content-type']` 是 `application/x-www-form-urlencoded`,会被编码为 query string,例如:`encodeURIComponent(k)=encodeURIComponent(v)`;<br>- 若 `header['content-type']` 是 `application/json`,会执行 JSON 序列化;<br>- 若 `data` 是普通对象且未命中上述类型,也会执行 JSON 序列化;<br>- 其他类型会调用 `toString()`|
|
|
44
|
+
|dataType|`"string" \| "json"`|否|期望返回的数据格式。<br>- `json`: 尝试按 JSON 解析;<br>- `string`: 按字符串返回。|
|
|
45
|
+
|header|`Record<string, string>`|否|请求 Header。|
|
|
46
|
+
|method|`RequestMethod`|否|请求方法。|
|
|
47
|
+
|url|`string`|是|请求地址,需为完整的 **HTTPS** URL。|
|
|
48
|
+
|
|
49
|
+
**类型说明**
|
|
50
|
+
|
|
51
|
+
- `RequestMethod`: `"GET" | "POST" | "PUT" | "DELETE" | "HEAD" | "OPTIONS" | "TRACE" | "CONNECT"`
|
|
52
|
+
|
|
53
|
+
## 返回值
|
|
54
|
+
|
|
55
|
+
返回一个 Promise,解析为 RequestResponse。
|
|
56
|
+
|
|
57
|
+
|字段名|类型|说明|
|
|
58
|
+
|---|---|---|
|
|
59
|
+
|data|`string \| Record<string, any> \| ArrayBuffer`|响应数据,类型由 `dataType` 决定。|
|
|
60
|
+
|header|`Record<string, string>`|HTTP 响应头。|
|
|
61
|
+
|statusCode|`number`|HTTP 状态码。|
|
|
62
|
+
|
|
63
|
+
<a id="connectsocket"></a>
|
|
64
|
+
### connectSocket()
|
|
65
|
+
|
|
66
|
+
创建一个 WebSocket 连接,并返回可操作该连接的 SocketTask。
|
|
67
|
+
|
|
68
|
+
该 API 会同步返回 `SocketTask`,但连接创建本身是异步过程。调用方应先在返回的
|
|
69
|
+
`SocketTask` 上注册事件回调,再等待 `onOpen` 表示连接可用。后续发送消息使用
|
|
70
|
+
`SocketTask.send`,关闭连接使用 `SocketTask.close`。
|
|
71
|
+
|
|
72
|
+
## 代码示例
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
import { connectSocket } from '@doubao-apps/framework/api';
|
|
76
|
+
|
|
77
|
+
const socketTask = connectSocket({
|
|
78
|
+
url: 'wss://example.com/socket',
|
|
79
|
+
header: { authorization: 'Bearer token' },
|
|
80
|
+
protocols: ['chat.v1']
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
socketTask.onOpen(() => {
|
|
84
|
+
socketTask.send({ data: 'hello' });
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
socketTask.onMessage((event) => {
|
|
88
|
+
console.log(event.data);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
socketTask.onClose((event) => {
|
|
92
|
+
console.log(event.code, event.reason);
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
socketTask.onError((event) => {
|
|
96
|
+
console.error(event.errMsg);
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## 入参
|
|
101
|
+
|
|
102
|
+
|参数名|类型|必填|说明|
|
|
103
|
+
|---|---|---|---|
|
|
104
|
+
|header|`Record<string, string>`|否|WebSocket 握手阶段携带的 HTTP Header。<br><br>适合放置业务自定义 Header,例如鉴权 token、trace id、客户端能力标识等。<br>`referer` 由宿主侧统一生成和管理,不应依赖该字段被业务传入值覆盖。|
|
|
105
|
+
|protocols|`string[]`|否|WebSocket 子协议数组。<br><br>会作为握手请求中的 `Sec-WebSocket-Protocol` 候选值传给服务端。<br>如果传入非空数组,服务端需要选择其中一个协议并在握手响应中返回;<br>服务端不支持或不返回匹配协议时,连接可能被宿主判定为创建失败。|
|
|
106
|
+
|url|`string`|是|WebSocket 连接地址。<br><br>需要包含协议、域名、路径和可选 query,例如 `wss://example.com/socket?room=1`。<br>如果地址为空或不是字符串,本 API 会返回 `readyState` 为 `undefined` 的 SocketTask,<br>并异步触发 `onError`。|
|
|
107
|
+
|
|
108
|
+
## 返回值
|
|
109
|
+
|
|
110
|
+
当前 WebSocket 连接对应的 SocketTask。
|
|
111
|
+
|
|
112
|
+
|字段名|类型|说明|
|
|
113
|
+
|---|---|---|
|
|
114
|
+
|CLOSED|`3`|表示 Socket 连接已关闭。<br><br>进入该状态后,该任务不会再收到新的消息,也不应继续调用 `send`。|
|
|
115
|
+
|CLOSING|`2`|表示 Socket 连接关闭中。<br><br>调用 SocketTask.close 后、本地等待宿主侧完成关闭流程时通常处于该状态。|
|
|
116
|
+
|CONNECTING|`0`|表示 Socket 正在连接。<br><br>`connectSocket` 刚返回且宿主尚未完成握手时通常处于该状态。|
|
|
117
|
+
|OPEN|`1`|表示 Socket 连接已经打开。<br><br>进入该状态后可以调用 SocketTask.send 发送数据。|
|
|
118
|
+
|readyState|`number \| undefined`|当前 Socket 连接状态 code。<br><br>可与 `CONNECTING`、`OPEN`、`CLOSING`、`CLOSED` 常量比较。<br>如果因为参数错误等原因导致连接请求没有被宿主成功创建,则为 `undefined`。|
|
|
119
|
+
|close|`(params?: SocketTaskCloseParams) => void`|-|
|
|
120
|
+
|onClose|`(callback: Function) => void`|-|
|
|
121
|
+
|onError|`(callback: Function) => void`|-|
|
|
122
|
+
|onMessage|`(callback: Function) => void`|-|
|
|
123
|
+
|onOpen|`(callback: Function) => void`|-|
|
|
124
|
+
|send|`(params: SocketTaskSendParams) => void`|-|
|
package/dist/skills/doubao-apps-dev/references/reference/open-api/09-/345/252/222/344/275/223.md
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Open API: 媒体
|
|
2
|
+
|
|
3
|
+
图片选择、预览、保存、压缩和信息读取。
|
|
4
|
+
|
|
5
|
+
[返回目录](./README.md) | [返回速查](../open-api.md)
|
|
6
|
+
|
|
7
|
+
## 速查
|
|
8
|
+
|
|
9
|
+
| API | 说明 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| [saveImageToPhotosAlbum](#saveimagetophotosalbum) | 保存图片到系统相册。 |
|
|
12
|
+
| [previewImage](#previewimage) | 预览图片。 |
|
|
13
|
+
| [getImageInfo](#getimageinfo) | 获取图片信息。 |
|
|
14
|
+
| [chooseImage](#chooseimage) | 选择图片。 |
|
|
15
|
+
| [compressImage](#compressimage) | 压缩图片。 |
|
|
16
|
+
|
|
17
|
+
## API 详情
|
|
18
|
+
|
|
19
|
+
<a id="saveimagetophotosalbum"></a>
|
|
20
|
+
### saveImageToPhotosAlbum()
|
|
21
|
+
|
|
22
|
+
保存图片到系统相册。
|
|
23
|
+
|
|
24
|
+
需要先确保应用已具备写入系统相册的权限。
|
|
25
|
+
|
|
26
|
+
## 代码示例
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { saveImageToPhotosAlbum } from '@doubao-apps/framework/api';
|
|
30
|
+
|
|
31
|
+
await saveImageToPhotosAlbum({
|
|
32
|
+
filePath: '/path/to/image.png'
|
|
33
|
+
});
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 入参
|
|
37
|
+
|
|
38
|
+
|参数名|类型|必填|说明|
|
|
39
|
+
|---|---|---|---|
|
|
40
|
+
|filePath|`string`|是|需要保存的图片文件路径。支持临时文件路径或持久文件路径,不支持网络图片路径。|
|
|
41
|
+
|
|
42
|
+
## 返回值
|
|
43
|
+
|
|
44
|
+
返回 `Promise<object>`。
|
|
45
|
+
|
|
46
|
+
<a id="previewimage"></a>
|
|
47
|
+
### previewImage()
|
|
48
|
+
|
|
49
|
+
预览图片。
|
|
50
|
+
|
|
51
|
+
## 代码示例
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
import { previewImage } from '@doubao-apps/framework/api';
|
|
55
|
+
|
|
56
|
+
await previewImage({
|
|
57
|
+
urls: ['https://example.com/a.png', 'https://example.com/b.png'],
|
|
58
|
+
current: 0
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 入参
|
|
63
|
+
|
|
64
|
+
|参数名|类型|必填|说明|
|
|
65
|
+
|---|---|---|---|
|
|
66
|
+
|current|`string \| number`|否|当前显示图片的链接,或当前显示图片的下标,不填则默认为 urls 中的第一张|
|
|
67
|
+
|referrerPolicy|`string`|否|预览页使用的 Referrer 策略。|
|
|
68
|
+
|showmenu|`boolean`|否|是否显示长按菜单,菜单支持保存图片至本地相册|
|
|
69
|
+
|urls|`string[]`|是|需要预览的图片链接列表。|
|
|
70
|
+
|
|
71
|
+
## 返回值
|
|
72
|
+
|
|
73
|
+
返回 `Promise<object>`。
|
|
74
|
+
|
|
75
|
+
<a id="getimageinfo"></a>
|
|
76
|
+
### getImageInfo()
|
|
77
|
+
|
|
78
|
+
获取图片信息。
|
|
79
|
+
|
|
80
|
+
## 代码示例
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
import { getImageInfo } from '@doubao-apps/framework/api';
|
|
84
|
+
|
|
85
|
+
const { width, height, path } = await getImageInfo({
|
|
86
|
+
src: '/tmp/image.png'
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
console.log(width, height, path);
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 入参
|
|
93
|
+
|
|
94
|
+
|参数名|类型|必填|说明|
|
|
95
|
+
|---|---|---|---|
|
|
96
|
+
|src|`string`|是|图片路径,可以是相对路径、临时文件路径、存储文件路径或网络图片路径。|
|
|
97
|
+
|
|
98
|
+
## 返回值
|
|
99
|
+
|
|
100
|
+
返回 `Promise<GetImageInfoResult>`。
|
|
101
|
+
|
|
102
|
+
|字段名|类型|说明|
|
|
103
|
+
|---|---|---|
|
|
104
|
+
|height|`number`|图片原始高度,单位 px,不考虑旋转。|
|
|
105
|
+
|orientation|`ImageOrientation`|图片方向。|
|
|
106
|
+
|path|`string`|图片的本地路径。|
|
|
107
|
+
|type|`string`|图片格式。|
|
|
108
|
+
|width|`number`|图片原始宽度,单位 px,不考虑旋转。|
|
|
109
|
+
|
|
110
|
+
**类型说明**
|
|
111
|
+
|
|
112
|
+
- `ImageOrientation`: `"up" | "up-mirrored" | "down" | "down-mirrored" | "left-mirrored" | "right" | "right-mirrored" | "left"`
|
|
113
|
+
|
|
114
|
+
<a id="chooseimage"></a>
|
|
115
|
+
### chooseImage()
|
|
116
|
+
|
|
117
|
+
选择图片。
|
|
118
|
+
|
|
119
|
+
## 代码示例
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
import { chooseImage } from '@doubao-apps/framework/api';
|
|
123
|
+
|
|
124
|
+
const { tempFilePaths } = await chooseImage({
|
|
125
|
+
count: 1,
|
|
126
|
+
sourceType: ['album']
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
console.log(tempFilePaths);
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## 入参
|
|
133
|
+
|
|
134
|
+
|参数名|类型|必填|说明|
|
|
135
|
+
|---|---|---|---|
|
|
136
|
+
|count|`number`|否|最多可选图片张数。|
|
|
137
|
+
|imageId|`string`|否|H5 场景下可复用的 input 元素 ID。|
|
|
138
|
+
|sizeType|`ChooseImageSizeType[]`|否|允许返回的图片尺寸类型。|
|
|
139
|
+
|sourceType|`ChooseImageSourceType[]`|否|允许选择的图片来源。|
|
|
140
|
+
|
|
141
|
+
**类型说明**
|
|
142
|
+
|
|
143
|
+
- `ChooseImageSizeType`: `"original" | "compressed"`
|
|
144
|
+
- `ChooseImageSourceType`: `"album" | "camera" | "user" | "environment"`
|
|
145
|
+
|
|
146
|
+
## 返回值
|
|
147
|
+
|
|
148
|
+
返回 `Promise<ChooseImageResult>`。
|
|
149
|
+
|
|
150
|
+
|字段名|类型|说明|
|
|
151
|
+
|---|---|---|
|
|
152
|
+
|tempFilePaths|`string[]`|图片临时文件路径列表。|
|
|
153
|
+
|tempFiles|`ChooseImageFile[]`|图片临时文件信息列表。|
|
|
154
|
+
|tempFiles[].originalFileObj|`File`|原始浏览器 File 对象。|
|
|
155
|
+
|tempFiles[].path|`string`|本地临时文件路径。|
|
|
156
|
+
|tempFiles[].size|`number`|文件大小,单位 B。|
|
|
157
|
+
|tempFiles[].type|`string`|文件 MIME 类型。|
|
|
158
|
+
|
|
159
|
+
<a id="compressimage"></a>
|
|
160
|
+
### compressImage()
|
|
161
|
+
|
|
162
|
+
压缩图片。
|
|
163
|
+
|
|
164
|
+
## 代码示例
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import { compressImage } from '@doubao-apps/framework/api';
|
|
168
|
+
|
|
169
|
+
const { tempFilePath } = await compressImage({
|
|
170
|
+
src: '/tmp/image.png',
|
|
171
|
+
quality: 80
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
console.log(tempFilePath);
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## 入参
|
|
178
|
+
|
|
179
|
+
|参数名|类型|必填|说明|
|
|
180
|
+
|---|---|---|---|
|
|
181
|
+
|compressedHeight|`number`|否|压缩后图片高度,单位 px。|
|
|
182
|
+
|compressedWidth|`number`|否|压缩后图片宽度,单位 px。|
|
|
183
|
+
|quality|`number`|否|压缩质量,范围 0 - 100,仅对 jpg 生效。|
|
|
184
|
+
|src|`string`|是|图片路径。|
|
|
185
|
+
|
|
186
|
+
## 返回值
|
|
187
|
+
|
|
188
|
+
返回 `Promise<CompressImageResult>`。
|
|
189
|
+
|
|
190
|
+
|字段名|类型|说明|
|
|
191
|
+
|---|---|---|
|
|
192
|
+
|tempFilePath|`string`|压缩后图片的临时文件路径。|
|