@doubao-dev/plugin-app-dev 0.0.0-stage → 0.0.40-canary-dea0ddc73-20261026073950
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 +10 -2
- package/dist/147.js +9 -0
- package/dist/assets.d.ts +5 -0
- package/dist/assets.js +4 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +1378 -0
- package/dist/plugin.d.ts +102 -0
- package/dist/plugin.js +4995 -0
- package/dist/preview.js +16 -0
- package/dist/rslib-runtime.js +33 -0
- package/dist/skills/doubao-plugin-app/SKILL.md +21 -0
- package/dist/skills/doubao-plugin-app/references/app-development.md +85 -0
- package/dist/skills/doubao-plugin-app/references/frontend/components/container-overlay.md +131 -0
- package/dist/skills/doubao-plugin-app/references/frontend/components/form-controls.md +146 -0
- package/dist/skills/doubao-plugin-app/references/frontend/components/interactive-controls.md +120 -0
- package/dist/skills/doubao-plugin-app/references/frontend/components/map-canvas.md +107 -0
- package/dist/skills/doubao-plugin-app/references/frontend/components/overview.md +43 -0
- package/dist/skills/doubao-plugin-app/references/frontend/components/scroll-list.md +149 -0
- package/dist/skills/doubao-plugin-app/references/frontend/components/text-media.md +209 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/01-/345/237/272/347/241/200.md +1389 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/02-/347/263/273/347/273/237.md +1376 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/03-/350/207/252/345/256/232/344/271/211/351/200/232/344/277/241.md +127 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/04-/345/256/232/344/275/215.md +784 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/05-/345/255/230/345/202/250.md +1176 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/06-/350/267/257/347/224/261.md +839 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/07-/347/225/214/351/235/242.md +376 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/08-/344/272/244/344/272/222.md +1319 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/09-/350/276/223/345/205/245.md +192 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/10-/347/275/221/347/273/234.md +900 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/11-/345/252/222/344/275/223.md +1496 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/12-/344/270/232/345/212/241/350/203/275/345/212/233.md +1281 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/13-/347/231/273/345/275/225.md +511 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/14-/346/224/257/344/273/230.md +943 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/15-/346/225/260/346/215/256/345/210/206/346/236/220.md +124 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/16-/350/223/235/347/211/231.md +3364 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/17-wi-fi.md +1028 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/18-/345/212/240/351/200/237/345/272/246/350/256/241.md +354 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/19-ibeacon.md +508 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/20-/347/275/227/347/233/230.md +320 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/21-/350/256/276/345/244/207/346/226/271/345/220/221.md +351 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/22-/351/231/200/350/236/272/344/273/252.md +354 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/23-/345/252/222/344/275/223-/350/256/276/345/244/207-/347/275/221/347/273/234.md +264 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/24-/347/237/255/344/277/241.md +155 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/25-/346/227/240/351/232/234/347/242/215.md +144 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/26-/345/237/272/347/241/200/344/277/241/346/201/257.md +238 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/27-/347/224/265/346/261/240.md +235 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/28-/345/211/252/350/264/264/346/235/277.md +303 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/29-/345/212/240/345/257/206.md +126 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/30-/346/227/245/345/216/206.md +417 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/31-/347/224/265/350/257/235.md +144 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/32-/346/211/253/347/240/201.md +236 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/33-/345/261/217/345/271/225.md +747 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/34-/351/234/207/345/212/250.md +277 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/35-/346/226/207/344/273/266/347/263/273/347/273/237.md +431 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/common-errors.md +69 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/groups.md +43 -0
- package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/quick-reference.md +436 -0
- package/dist/skills/doubao-plugin-app/references/frontend/examples/common-patterns.md +590 -0
- package/dist/skills/doubao-plugin-app/references/frontend/examples/doubao-agentic-service-api-recipes.md +209 -0
- package/dist/skills/doubao-plugin-app/references/frontend/examples/page-widget-basics.md +368 -0
- package/dist/skills/doubao-plugin-app/references/frontend/examples/page-widget-recipes.md +65 -0
- package/dist/skills/doubao-plugin-app/references/frontend/framework/core.md +283 -0
- package/dist/skills/doubao-plugin-app/references/frontend/guides/auth.md +277 -0
- package/dist/skills/doubao-plugin-app/references/frontend/guides/best-practices.md +574 -0
- package/dist/skills/doubao-plugin-app/references/frontend/guides/client-tools-and-events.md +209 -0
- package/dist/skills/doubao-plugin-app/references/frontend/guides/component-development.md +832 -0
- package/dist/skills/doubao-plugin-app/references/frontend/guides/debugger-mcp.md +537 -0
- package/dist/skills/doubao-plugin-app/references/frontend/guides/expired-widget.md +101 -0
- package/dist/skills/doubao-plugin-app/references/frontend/guides/performance-optimization.md +417 -0
- package/dist/skills/doubao-plugin-app/references/frontend/guides/troubleshooting.md +278 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/best-practices.md +720 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/pseudo-classes.md +149 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/selectors.md +224 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/supported-properties.md +269 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/values-and-units.md +314 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/flex-layout.md +334 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/grid-layout.md +408 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/linear-layout.md +355 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/relative-layout.md +189 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/css-differences.md +737 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/migration-guide.md +669 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/unsupported-features.md +290 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/overview.md +60 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/animation.md +243 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/responsive.md +194 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/theming.md +143 -0
- package/dist/skills/doubao-plugin-app/references/frontend/lynx/quick-reference.md +229 -0
- package/dist/skills/doubao-plugin-app/references/frontend/rules/dos-and-donts.md +479 -0
- package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/design-boundary.md +46 -0
- package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/overview.md +118 -0
- package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/props.md +301 -0
- package/dist/skills/doubao-plugin-app/references/mcp-and-cards.md +38 -0
- package/dist/templates/README.md.template +11 -0
- package/dist/templates/com.doubao/app/manifest.yaml +41 -0
- package/dist/templates/com.doubao/app/package.json.template +13 -0
- package/dist/templates/com.doubao/app/src/app.config.ts.template +5 -0
- package/dist/templates/com.doubao/app/src/app.ts.template +3 -0
- package/dist/templates/com.doubao/app/src/pages/home/index.css +14 -0
- package/dist/templates/com.doubao/app/src/pages/home/index.tsx.template +14 -0
- package/dist/templates/com.doubao/app/src/widgets/example/index.tsx.template +29 -0
- package/dist/templates/com.doubao/app/tsconfig.json +19 -0
- package/dist/templates/mcp.json +9 -0
- package/dist/templates/plugin.json.template +29 -0
- package/dist/templates/skills/example/SKILL.md.template +14 -0
- package/dist/upload.d.ts +44 -0
- package/dist/upload.js +38 -0
- package/package.json +60 -3
|
@@ -0,0 +1,1376 @@
|
|
|
1
|
+
# 豆包应用插件的端能力 API: 系统
|
|
2
|
+
|
|
3
|
+
豆包客户端信息、窗口信息和系统设置。
|
|
4
|
+
|
|
5
|
+
[返回目录](./groups.md) | [返回速查](./quick-reference.md)
|
|
6
|
+
|
|
7
|
+
## 速查
|
|
8
|
+
|
|
9
|
+
| API | 说明 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| [getWindowInfoSync](#getwindowinfosync) | 获取窗口信息。<br><br>同步 API。 |
|
|
12
|
+
| [getSystemSetting](#getsystemsetting) | 获取设备设置。 |
|
|
13
|
+
| [getAppAuthorizeSetting](#getappauthorizesetting) | 获取豆包客户端的系统授权设置。 调用只读取当前系统授权状态,不会申请权限或触发系统授权弹窗。原有状态字段固定返回 authorized、denied 或 not determined,精细授权字段用于区分部分、只读、只写、前后台等能力。 |
|
|
14
|
+
| [getAppBaseInfoSync](#getappbaseinfosync) | 获取应用基础信息。<br><br>同步 API。 |
|
|
15
|
+
| [getWindowInfo](#getwindowinfo) | 获取窗口信息。 |
|
|
16
|
+
| [getAppBaseInfo](#getappbaseinfo) | 获取应用基础信息。 |
|
|
17
|
+
| [onThemeChange](#onthemechange) | 监听应用主题变化。 当用户在系统设置或豆包客户端内切换浅色、深色主题时触发。回调参数中的 theme 表示切换后的主题,可与 getAppBaseInfo 返回的 theme 字段配合使用。<br><br>返回取消监听函数。 |
|
|
18
|
+
| [getSystemInfo](#getsysteminfo) | 获取系统信息。 |
|
|
19
|
+
| [getSystemInfoSync](#getsysteminfosync) | 同步获取系统信息。<br><br>同步 API。 |
|
|
20
|
+
|
|
21
|
+
## API 详情
|
|
22
|
+
|
|
23
|
+
<a id="getwindowinfosync"></a>
|
|
24
|
+
### getWindowInfoSync()
|
|
25
|
+
|
|
26
|
+
# getWindowInfoSync
|
|
27
|
+
|
|
28
|
+
获取窗口信息。
|
|
29
|
+
|
|
30
|
+
## 扫码预览
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
## 支持版本
|
|
34
|
+
|
|
35
|
+
前端库版本不低于 `0.0.18`。
|
|
36
|
+
|
|
37
|
+
## 支持平台
|
|
38
|
+
|
|
39
|
+
<table>
|
|
40
|
+
<thead>
|
|
41
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
42
|
+
</thead>
|
|
43
|
+
<tbody>
|
|
44
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
45
|
+
<tr><td>iOS</td><td>支持</td></tr>
|
|
46
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
47
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
48
|
+
</tbody>
|
|
49
|
+
</table>
|
|
50
|
+
|
|
51
|
+
## 支持场景
|
|
52
|
+
|
|
53
|
+
<table>
|
|
54
|
+
<thead>
|
|
55
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
56
|
+
</thead>
|
|
57
|
+
<tbody>
|
|
58
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
59
|
+
<tr><td>卡片</td><td>不支持</td></tr>
|
|
60
|
+
</tbody>
|
|
61
|
+
</table>
|
|
62
|
+
|
|
63
|
+
## 调用方式
|
|
64
|
+
|
|
65
|
+
### 同步 API
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
getWindowInfoSync(_params?: object): GetWindowInfoResult
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 入参
|
|
72
|
+
|
|
73
|
+
无。
|
|
74
|
+
|
|
75
|
+
## 调用示例
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { getWindowInfoSync } from '@doubao-dev/framework/api';
|
|
79
|
+
|
|
80
|
+
const result = getWindowInfoSync();
|
|
81
|
+
|
|
82
|
+
console.log(result.windowWidth, result.windowHeight);
|
|
83
|
+
console.log(result.safeArea?.top, result.screenTop);
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## 返回值
|
|
87
|
+
|
|
88
|
+
<table>
|
|
89
|
+
<thead>
|
|
90
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
91
|
+
</thead>
|
|
92
|
+
<tbody>
|
|
93
|
+
<tr><td><code>pixelRatio</code></td><td><code>number</code></td><td>是</td><td>设备像素比</td></tr>
|
|
94
|
+
<tr><td><code>safeArea</code></td><td><code>WindowSafeArea</code></td><td>否</td><td>安全区域</td></tr>
|
|
95
|
+
<tr><td><code>safeArea.bottom</code></td><td><code>number</code></td><td>否</td><td>安全区域右下角纵坐标</td></tr>
|
|
96
|
+
<tr><td><code>safeArea.height</code></td><td><code>number</code></td><td>否</td><td>安全区域高度</td></tr>
|
|
97
|
+
<tr><td><code>safeArea.left</code></td><td><code>number</code></td><td>否</td><td>安全区域左上角横坐标</td></tr>
|
|
98
|
+
<tr><td><code>safeArea.right</code></td><td><code>number</code></td><td>否</td><td>安全区域右下角横坐标</td></tr>
|
|
99
|
+
<tr><td><code>safeArea.top</code></td><td><code>number</code></td><td>否</td><td>安全区域左上角纵坐标</td></tr>
|
|
100
|
+
<tr><td><code>safeArea.width</code></td><td><code>number</code></td><td>否</td><td>安全区域宽度</td></tr>
|
|
101
|
+
<tr><td><code>screenHeight</code></td><td><code>number</code></td><td>是</td><td>屏幕高度</td></tr>
|
|
102
|
+
<tr><td><code>screenTop</code></td><td><code>number</code></td><td>是</td><td>窗口上边缘的 y 值</td></tr>
|
|
103
|
+
<tr><td><code>screenWidth</code></td><td><code>number</code></td><td>是</td><td>屏幕宽度</td></tr>
|
|
104
|
+
<tr><td><code>statusBarHeight</code></td><td><code>number</code></td><td>是</td><td>状态栏高度</td></tr>
|
|
105
|
+
<tr><td><code>windowHeight</code></td><td><code>number</code></td><td>是</td><td>可使用窗口高度</td></tr>
|
|
106
|
+
<tr><td><code>windowWidth</code></td><td><code>number</code></td><td>是</td><td>可使用窗口宽度</td></tr>
|
|
107
|
+
</tbody>
|
|
108
|
+
</table>
|
|
109
|
+
|
|
110
|
+
### 返回示例
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"pixelRatio": 3,
|
|
115
|
+
"screenWidth": 393,
|
|
116
|
+
"screenHeight": 852,
|
|
117
|
+
"windowWidth": 393,
|
|
118
|
+
"windowHeight": 852,
|
|
119
|
+
"statusBarHeight": 59,
|
|
120
|
+
"safeArea": {
|
|
121
|
+
"left": 0,
|
|
122
|
+
"right": 393,
|
|
123
|
+
"top": 59,
|
|
124
|
+
"bottom": 818,
|
|
125
|
+
"width": 393,
|
|
126
|
+
"height": 759
|
|
127
|
+
},
|
|
128
|
+
"screenTop": 0
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
<a id="getsystemsetting"></a>
|
|
133
|
+
### getSystemSetting()
|
|
134
|
+
|
|
135
|
+
# getSystemSetting
|
|
136
|
+
|
|
137
|
+
获取设备设置。
|
|
138
|
+
|
|
139
|
+
## 扫码预览
|
|
140
|
+

|
|
141
|
+
|
|
142
|
+
## 支持版本
|
|
143
|
+
|
|
144
|
+
前端库版本不低于 `0.0.25`。
|
|
145
|
+
|
|
146
|
+
## 支持平台
|
|
147
|
+
|
|
148
|
+
<table>
|
|
149
|
+
<thead>
|
|
150
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
151
|
+
</thead>
|
|
152
|
+
<tbody>
|
|
153
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
154
|
+
<tr><td>iOS</td><td>支持</td></tr>
|
|
155
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
156
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
157
|
+
</tbody>
|
|
158
|
+
</table>
|
|
159
|
+
|
|
160
|
+
## 支持场景
|
|
161
|
+
|
|
162
|
+
<table>
|
|
163
|
+
<thead>
|
|
164
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
165
|
+
</thead>
|
|
166
|
+
<tbody>
|
|
167
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
168
|
+
<tr><td>卡片</td><td>支持</td></tr>
|
|
169
|
+
</tbody>
|
|
170
|
+
</table>
|
|
171
|
+
|
|
172
|
+
## 调用方式
|
|
173
|
+
|
|
174
|
+
### 同步 API
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
getSystemSetting(params?: object): GetSystemSettingResult
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## 入参
|
|
181
|
+
|
|
182
|
+
无。
|
|
183
|
+
|
|
184
|
+
## 调用示例
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
import { getSystemSetting } from '@doubao-dev/framework/api';
|
|
188
|
+
|
|
189
|
+
const result = getSystemSetting();
|
|
190
|
+
|
|
191
|
+
console.log(result.bluetoothEnabled, result.locationEnabled);
|
|
192
|
+
console.log(result.wifiEnabled, result.deviceOrientation);
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## 返回值
|
|
196
|
+
|
|
197
|
+
<table>
|
|
198
|
+
<thead>
|
|
199
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
200
|
+
</thead>
|
|
201
|
+
<tbody>
|
|
202
|
+
<tr><td><code>bluetoothEnabled</code></td><td><code>boolean</code></td><td>是</td><td>蓝牙的系统开关</td></tr>
|
|
203
|
+
<tr><td><code>deviceOrientation</code></td><td><code>DeviceOrientation</code></td><td>是</td><td>设备方向</td></tr>
|
|
204
|
+
<tr><td><code>locationEnabled</code></td><td><code>boolean</code></td><td>是</td><td>地理位置的系统开关</td></tr>
|
|
205
|
+
<tr><td><code>wifiEnabled</code></td><td><code>boolean</code></td><td>是</td><td>Wi-Fi 的系统开关</td></tr>
|
|
206
|
+
</tbody>
|
|
207
|
+
</table>
|
|
208
|
+
|
|
209
|
+
### 返回示例
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"bluetoothEnabled": true,
|
|
214
|
+
"locationEnabled": true,
|
|
215
|
+
"wifiEnabled": true,
|
|
216
|
+
"deviceOrientation": "portrait"
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## 错误处理
|
|
221
|
+
|
|
222
|
+
同步调用失败时抛出错误。错误对象和通用错误码见 [通用错误处理](./common-errors.md#错误返回)。
|
|
223
|
+
|
|
224
|
+
### 错误码
|
|
225
|
+
|
|
226
|
+
#### 通用错误码
|
|
227
|
+
|
|
228
|
+
<table>
|
|
229
|
+
<thead>
|
|
230
|
+
<tr><th>errNo</th><th>errMsg</th><th>说明</th><th>平台</th></tr>
|
|
231
|
+
</thead>
|
|
232
|
+
<tbody>
|
|
233
|
+
<tr><td><code>102</code></td><td><code>internal error</code></td><td>内部错误</td><td>Android</td></tr>
|
|
234
|
+
</tbody>
|
|
235
|
+
</table>
|
|
236
|
+
|
|
237
|
+
## 平台差异
|
|
238
|
+
|
|
239
|
+
- **Android**:wifiEnabled 表示系统 Wi-Fi 开关是否打开
|
|
240
|
+
- **iOS**:wifiEnabled 表示当前是否正在通过 Wi-Fi 联网
|
|
241
|
+
|
|
242
|
+
<a id="getappauthorizesetting"></a>
|
|
243
|
+
### getAppAuthorizeSetting()
|
|
244
|
+
|
|
245
|
+
# getAppAuthorizeSetting
|
|
246
|
+
|
|
247
|
+
获取豆包客户端的系统授权设置。
|
|
248
|
+
|
|
249
|
+
调用只读取当前系统授权状态,不会申请权限或触发系统授权弹窗。原有状态字段固定返回
|
|
250
|
+
`authorized`、`denied` 或 `not determined`,精细授权字段用于区分部分、只读、只写、前后台等能力。
|
|
251
|
+
|
|
252
|
+
## 扫码预览
|
|
253
|
+

|
|
254
|
+
|
|
255
|
+
## 支持版本
|
|
256
|
+
|
|
257
|
+
前端库版本不低于 `0.0.40`。
|
|
258
|
+
|
|
259
|
+
## 支持平台
|
|
260
|
+
|
|
261
|
+
<table>
|
|
262
|
+
<thead>
|
|
263
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
264
|
+
</thead>
|
|
265
|
+
<tbody>
|
|
266
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
267
|
+
<tr><td>iOS</td><td>支持</td></tr>
|
|
268
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
269
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
270
|
+
</tbody>
|
|
271
|
+
</table>
|
|
272
|
+
|
|
273
|
+
## 支持场景
|
|
274
|
+
|
|
275
|
+
<table>
|
|
276
|
+
<thead>
|
|
277
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
278
|
+
</thead>
|
|
279
|
+
<tbody>
|
|
280
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
281
|
+
<tr><td>卡片</td><td>支持</td></tr>
|
|
282
|
+
</tbody>
|
|
283
|
+
</table>
|
|
284
|
+
|
|
285
|
+
## 使用说明
|
|
286
|
+
|
|
287
|
+
- 本接口查询豆包客户端的系统权限,不等同于查询当前应用插件的 scope 授权。
|
|
288
|
+
- **iOS**:SDK 首次完成通知设置异步预热前,或应用重新激活后的刷新尚未完成时,四个通知字段可能仍为旧值或 not determined。
|
|
289
|
+
- **iOS**:healthDataAuthorizationDetail 使用异步缓存;首次预热或应用重新激活刷新完成前可能返回 UNKNOWN。Apple 不公开精确读取授权,DENIED/GRANTED 为轻量查询推断。
|
|
290
|
+
|
|
291
|
+
## 调用方式
|
|
292
|
+
|
|
293
|
+
### 同步 API
|
|
294
|
+
|
|
295
|
+
```typescript
|
|
296
|
+
getAppAuthorizeSetting(params?: object): GetAppAuthorizeSettingResult
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## 入参
|
|
300
|
+
|
|
301
|
+
无。
|
|
302
|
+
|
|
303
|
+
## 调用示例
|
|
304
|
+
|
|
305
|
+
```typescript
|
|
306
|
+
import { getAppAuthorizeSetting } from '@doubao-dev/framework/api';
|
|
307
|
+
|
|
308
|
+
const result = getAppAuthorizeSetting();
|
|
309
|
+
const detail = result.phoneCalendarAuthorizationDetail;
|
|
310
|
+
const canWriteCalendar =
|
|
311
|
+
detail === 'full' ||
|
|
312
|
+
detail === 'write only' ||
|
|
313
|
+
(detail == null && result.phoneCalendarAuthorized === 'authorized');
|
|
314
|
+
console.log(canWriteCalendar);
|
|
315
|
+
console.log(result.healthDataAuthorizationDetail?.readStatus);
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## 返回值
|
|
319
|
+
|
|
320
|
+
<table>
|
|
321
|
+
<thead>
|
|
322
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
323
|
+
</thead>
|
|
324
|
+
<tbody>
|
|
325
|
+
<tr><td><code>albumAuthorizationDetail</code></td><td><code>AlbumAuthorizationDetail | null</code></td><td>否</td><td>相册精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。<br><br>继承 BasicAuthorizationDetail 的全部取值,并增加:<br>- `limited`:只能访问用户选择的部分照片;支持 iOS 和 Android 14 及以上版本。<br>- `add only`:只能向相册添加照片,不能读取相册内容;仅 iOS 支持。</td></tr>
|
|
326
|
+
<tr><td><code>albumAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>相册授权状态;Android 固定返回 not determined</td></tr>
|
|
327
|
+
<tr><td><code>bluetoothAuthorizationDetail</code></td><td><code>BluetoothAuthorizationDetail | null</code></td><td>否</td><td>蓝牙精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。<br><br>继承 BasicAuthorizationDetail 的全部取值,并增加:<br>- `partial`:只获得部分已声明的蓝牙子权限;仅 Android 支持。</td></tr>
|
|
328
|
+
<tr><td><code>bluetoothAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>蓝牙授权状态</td></tr>
|
|
329
|
+
<tr><td><code>cameraAuthorizationDetail</code></td><td><code>BasicAuthorizationDetail | null</code></td><td>否</td><td>摄像头精细授权状态,取值与 BasicAuthorizationDetail 一致;旧客户端或无法可靠映射时不返回该字段或返回 `null`。</td></tr>
|
|
330
|
+
<tr><td><code>cameraAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>摄像头授权状态</td></tr>
|
|
331
|
+
<tr><td><code>healthDataAuthorizationDetail</code></td><td><code>HealthDataAuthorizationDetail | null</code></td><td>否</td><td>HealthKit 逐类型读取授权状态;仅 iOS 新版本客户端返回。<br><br>Apple 不提供读取权限的精确查询接口。`status` 为 1 或 2 时采用轻量查询推断,<br>“已授权但没有数据”和“拒绝读取”仍可能无法可靠区分;业务应以实际读取结果为准。</td></tr>
|
|
332
|
+
<tr><td><code>healthDataAuthorizationDetail.readStatus</code></td><td><code>HealthDataAuthorizationItem[]</code></td><td>否</td><td>iOS SDK 支持的全部健康类型及其读取状态。</td></tr>
|
|
333
|
+
<tr><td><code>healthDataAuthorizationDetail.readStatus[].status</code></td><td><code>HealthDataAuthorizationStatus</code></td><td>否</td><td>当前类型的读取权限状态码。</td></tr>
|
|
334
|
+
<tr><td><code>healthDataAuthorizationDetail.readStatus[].type</code></td><td><code>HealthDataType</code></td><td>否</td><td>健康数据类型。</td></tr>
|
|
335
|
+
<tr><td><code>locationAuthorizationDetail</code></td><td><code>LocationAuthorizationDetail | null</code></td><td>否</td><td>定位精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。<br><br>继承 UnauthorizedDetail 的全部取值;获得权限时返回:<br>- `foreground approximate`:仅应用在前台时可以获取模糊定位。<br>- `foreground precise`:仅应用在前台时可以获取精确定位。<br>- `background approximate`:应用在前台或后台时均可以获取模糊定位。<br>- `background precise`:应用在前台或后台时均可以获取精确定位。</td></tr>
|
|
336
|
+
<tr><td><code>locationAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>定位授权状态</td></tr>
|
|
337
|
+
<tr><td><code>locationReducedAccuracy</code></td><td><code>boolean</code></td><td>是</td><td>是否只能使用模糊定位;仅在 iOS 且定位已授权时具有精度含义,Android 固定返回 false</td></tr>
|
|
338
|
+
<tr><td><code>microphoneAuthorizationDetail</code></td><td><code>BasicAuthorizationDetail | null</code></td><td>否</td><td>麦克风精细授权状态,取值与 BasicAuthorizationDetail 一致;旧客户端或无法可靠映射时不返回该字段或返回 `null`。</td></tr>
|
|
339
|
+
<tr><td><code>microphoneAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>麦克风授权状态</td></tr>
|
|
340
|
+
<tr><td><code>notificationAlertAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>通知提醒授权状态;Android 固定返回 not determined</td></tr>
|
|
341
|
+
<tr><td><code>notificationAuthorizationDetail</code></td><td><code>NotificationAuthorizationDetail | null</code></td><td>否</td><td>通知精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。<br><br>继承 BasicAuthorizationDetail 的全部取值,并增加:<br>- `provisional`:iOS 临时静默授权;不会弹出授权框,通知只进入通知中心。</td></tr>
|
|
342
|
+
<tr><td><code>notificationAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>通知总授权状态</td></tr>
|
|
343
|
+
<tr><td><code>notificationBadgeAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>通知角标授权状态;Android 固定返回 not determined</td></tr>
|
|
344
|
+
<tr><td><code>notificationSoundAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>通知声音授权状态;Android 固定返回 not determined</td></tr>
|
|
345
|
+
<tr><td><code>phoneCalendarAuthorizationDetail</code></td><td><code>PhoneCalendarAuthorizationDetail | null</code></td><td>否</td><td>系统日历精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 `null`。<br><br>继承 BasicAuthorizationDetail 的全部取值,并增加:<br>- `read only`:只能读取日历,不能新增、修改或删除日程;仅 Android 支持。<br>- `write only`:只能新增日程,不能读取现有日历数据。</td></tr>
|
|
346
|
+
<tr><td><code>phoneCalendarAuthorized</code></td><td><code>AppAuthorizeStatus</code></td><td>是</td><td>系统日历授权状态</td></tr>
|
|
347
|
+
</tbody>
|
|
348
|
+
</table>
|
|
349
|
+
|
|
350
|
+
### 返回示例
|
|
351
|
+
|
|
352
|
+
```json
|
|
353
|
+
{
|
|
354
|
+
"albumAuthorized": "authorized",
|
|
355
|
+
"bluetoothAuthorized": "denied",
|
|
356
|
+
"cameraAuthorized": "authorized",
|
|
357
|
+
"locationAuthorized": "authorized",
|
|
358
|
+
"locationReducedAccuracy": false,
|
|
359
|
+
"microphoneAuthorized": "authorized",
|
|
360
|
+
"notificationAuthorized": "authorized",
|
|
361
|
+
"notificationAlertAuthorized": "authorized",
|
|
362
|
+
"notificationBadgeAuthorized": "denied",
|
|
363
|
+
"notificationSoundAuthorized": "authorized",
|
|
364
|
+
"phoneCalendarAuthorized": "denied",
|
|
365
|
+
"albumAuthorizationDetail": "limited",
|
|
366
|
+
"bluetoothAuthorizationDetail": "full",
|
|
367
|
+
"cameraAuthorizationDetail": "full",
|
|
368
|
+
"locationAuthorizationDetail": "foreground precise",
|
|
369
|
+
"microphoneAuthorizationDetail": "full",
|
|
370
|
+
"notificationAuthorizationDetail": "provisional",
|
|
371
|
+
"phoneCalendarAuthorizationDetail": "write only",
|
|
372
|
+
"healthDataAuthorizationDetail": {
|
|
373
|
+
"readStatus": [
|
|
374
|
+
{ "type": "heart_rate", "status": 2 },
|
|
375
|
+
{ "type": "step_count", "status": 0 }
|
|
376
|
+
]
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
## 平台差异
|
|
382
|
+
|
|
383
|
+
- **Android**:albumAuthorized 和通知分项固定返回 not determined,locationReducedAccuracy 固定返回 false 且不表示实际定位精度
|
|
384
|
+
- **Android**:bluetoothAuthorized、cameraAuthorized、locationAuthorized、microphoneAuthorized、notificationAuthorized 和 phoneCalendarAuthorized 不区分尚未申请和已经拒绝,两种情况均返回 denied
|
|
385
|
+
- **Android**:locationAuthorized 在粗略或精确定位任一权限已授权时返回 authorized;phoneCalendarAuthorized 仅在读、写日历权限均授权时返回 authorized
|
|
386
|
+
- **Android**:精细字段区分 Android 14 部分相册、日历读写、定位前后台和精度,以及蓝牙部分子权限
|
|
387
|
+
- **iOS**:相册 limited 映射为 authorized,通知 provisional 和 ephemeral 映射为 authorized
|
|
388
|
+
- **iOS**:精细字段区分相册 limited/add only、日历 write only、定位前后台和精度,以及通知 provisional;ephemeral 暂不映射
|
|
389
|
+
- **iOS**:healthDataAuthorizationDetail 返回 SDK 支持的全部健康类型,调用方可按自己申请读取权限时使用的 types 过滤;它不等同于 Apple 提供的精确读取授权结果
|
|
390
|
+
|
|
391
|
+
<a id="getappbaseinfosync"></a>
|
|
392
|
+
### getAppBaseInfoSync()
|
|
393
|
+
|
|
394
|
+
# getAppBaseInfoSync
|
|
395
|
+
|
|
396
|
+
获取应用基础信息。
|
|
397
|
+
|
|
398
|
+
## 扫码预览
|
|
399
|
+

|
|
400
|
+
|
|
401
|
+
## 支持版本
|
|
402
|
+
|
|
403
|
+
前端库版本不低于 `0.0.18`。
|
|
404
|
+
|
|
405
|
+
## 支持平台
|
|
406
|
+
|
|
407
|
+
<table>
|
|
408
|
+
<thead>
|
|
409
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
410
|
+
</thead>
|
|
411
|
+
<tbody>
|
|
412
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
413
|
+
<tr><td>iOS</td><td>支持</td></tr>
|
|
414
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
415
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
416
|
+
</tbody>
|
|
417
|
+
</table>
|
|
418
|
+
|
|
419
|
+
## 支持场景
|
|
420
|
+
|
|
421
|
+
<table>
|
|
422
|
+
<thead>
|
|
423
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
424
|
+
</thead>
|
|
425
|
+
<tbody>
|
|
426
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
427
|
+
<tr><td>卡片</td><td>支持</td></tr>
|
|
428
|
+
</tbody>
|
|
429
|
+
</table>
|
|
430
|
+
|
|
431
|
+
## 使用说明
|
|
432
|
+
|
|
433
|
+
- 当前不返回 `enableDebug`;如需获取调试状态,请使用 getSystemInfo 或 getSystemInfoSync。
|
|
434
|
+
|
|
435
|
+
## 调用方式
|
|
436
|
+
|
|
437
|
+
### 同步 API
|
|
438
|
+
|
|
439
|
+
```typescript
|
|
440
|
+
getAppBaseInfoSync(_params?: object): GetAppBaseInfoResult
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
## 入参
|
|
444
|
+
|
|
445
|
+
无。
|
|
446
|
+
|
|
447
|
+
## 调用示例
|
|
448
|
+
|
|
449
|
+
```typescript
|
|
450
|
+
import { getAppBaseInfoSync } from '@doubao-dev/framework/api';
|
|
451
|
+
|
|
452
|
+
const result = getAppBaseInfoSync();
|
|
453
|
+
|
|
454
|
+
console.log(result.language, result.SDKVersion, result.theme);
|
|
455
|
+
console.log(result.host?.appId);
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
## 返回值
|
|
459
|
+
|
|
460
|
+
<table>
|
|
461
|
+
<thead>
|
|
462
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
463
|
+
</thead>
|
|
464
|
+
<tbody>
|
|
465
|
+
<tr><td><code>enableDebug</code></td><td><code>boolean</code></td><td>否</td><td>是否已打开调试</td></tr>
|
|
466
|
+
<tr><td><code>host</code></td><td><code>AppBaseInfoHost</code></td><td>否</td><td>当前豆包客户端信息</td></tr>
|
|
467
|
+
<tr><td><code>host.appId</code></td><td><code>string</code></td><td>否</td><td>当前豆包客户端的 appId</td></tr>
|
|
468
|
+
<tr><td><code>language</code></td><td><code>string</code></td><td>是</td><td>当前语言</td></tr>
|
|
469
|
+
<tr><td><code>SDKVersion</code></td><td><code>string</code></td><td>否</td><td>客户端基础库版本</td></tr>
|
|
470
|
+
<tr><td><code>theme</code></td><td><code>"light" | "dark"</code></td><td>否</td><td>当前主题</td></tr>
|
|
471
|
+
<tr><td><code>version</code></td><td><code>string</code></td><td>否</td><td>豆包客户端版本号</td></tr>
|
|
472
|
+
</tbody>
|
|
473
|
+
</table>
|
|
474
|
+
|
|
475
|
+
### 返回示例
|
|
476
|
+
|
|
477
|
+
```json
|
|
478
|
+
{
|
|
479
|
+
"SDKVersion": "0.0.36",
|
|
480
|
+
"host": {
|
|
481
|
+
"appId": "doubao"
|
|
482
|
+
},
|
|
483
|
+
"language": "zh_CN",
|
|
484
|
+
"version": "8.0.0",
|
|
485
|
+
"theme": "light"
|
|
486
|
+
}
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
<a id="getwindowinfo"></a>
|
|
490
|
+
### getWindowInfo()
|
|
491
|
+
|
|
492
|
+
# getWindowInfo
|
|
493
|
+
|
|
494
|
+
获取窗口信息。
|
|
495
|
+
|
|
496
|
+
## 扫码预览
|
|
497
|
+

|
|
498
|
+
|
|
499
|
+
## 支持版本
|
|
500
|
+
|
|
501
|
+
前端库版本不低于 `0.0.18`。
|
|
502
|
+
|
|
503
|
+
## 支持平台
|
|
504
|
+
|
|
505
|
+
<table>
|
|
506
|
+
<thead>
|
|
507
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
508
|
+
</thead>
|
|
509
|
+
<tbody>
|
|
510
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
511
|
+
<tr><td>iOS</td><td>支持</td></tr>
|
|
512
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
513
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
514
|
+
</tbody>
|
|
515
|
+
</table>
|
|
516
|
+
|
|
517
|
+
## 支持场景
|
|
518
|
+
|
|
519
|
+
<table>
|
|
520
|
+
<thead>
|
|
521
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
522
|
+
</thead>
|
|
523
|
+
<tbody>
|
|
524
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
525
|
+
<tr><td>卡片</td><td>不支持</td></tr>
|
|
526
|
+
</tbody>
|
|
527
|
+
</table>
|
|
528
|
+
|
|
529
|
+
## 使用说明
|
|
530
|
+
|
|
531
|
+
- 该接口封装 getWindowInfoSync 的结果;无需 Promise 形式时可直接使用 getWindowInfoSync。
|
|
532
|
+
|
|
533
|
+
## 调用方式
|
|
534
|
+
|
|
535
|
+
### 异步 API
|
|
536
|
+
|
|
537
|
+
```typescript
|
|
538
|
+
getWindowInfo(_params?: object): Promise<GetWindowInfoResult>
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
## 入参
|
|
542
|
+
|
|
543
|
+
无。
|
|
544
|
+
|
|
545
|
+
## 调用示例
|
|
546
|
+
|
|
547
|
+
```typescript
|
|
548
|
+
import { getWindowInfo } from '@doubao-dev/framework/api';
|
|
549
|
+
|
|
550
|
+
const result = await getWindowInfo();
|
|
551
|
+
|
|
552
|
+
console.log(result.windowWidth, result.windowHeight);
|
|
553
|
+
console.log(result.safeArea?.top, result.screenTop);
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
## 成功返回
|
|
557
|
+
|
|
558
|
+
<table>
|
|
559
|
+
<thead>
|
|
560
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
561
|
+
</thead>
|
|
562
|
+
<tbody>
|
|
563
|
+
<tr><td><code>pixelRatio</code></td><td><code>number</code></td><td>是</td><td>设备像素比</td></tr>
|
|
564
|
+
<tr><td><code>safeArea</code></td><td><code>WindowSafeArea</code></td><td>否</td><td>安全区域</td></tr>
|
|
565
|
+
<tr><td><code>safeArea.bottom</code></td><td><code>number</code></td><td>否</td><td>安全区域右下角纵坐标</td></tr>
|
|
566
|
+
<tr><td><code>safeArea.height</code></td><td><code>number</code></td><td>否</td><td>安全区域高度</td></tr>
|
|
567
|
+
<tr><td><code>safeArea.left</code></td><td><code>number</code></td><td>否</td><td>安全区域左上角横坐标</td></tr>
|
|
568
|
+
<tr><td><code>safeArea.right</code></td><td><code>number</code></td><td>否</td><td>安全区域右下角横坐标</td></tr>
|
|
569
|
+
<tr><td><code>safeArea.top</code></td><td><code>number</code></td><td>否</td><td>安全区域左上角纵坐标</td></tr>
|
|
570
|
+
<tr><td><code>safeArea.width</code></td><td><code>number</code></td><td>否</td><td>安全区域宽度</td></tr>
|
|
571
|
+
<tr><td><code>screenHeight</code></td><td><code>number</code></td><td>是</td><td>屏幕高度</td></tr>
|
|
572
|
+
<tr><td><code>screenTop</code></td><td><code>number</code></td><td>是</td><td>窗口上边缘的 y 值</td></tr>
|
|
573
|
+
<tr><td><code>screenWidth</code></td><td><code>number</code></td><td>是</td><td>屏幕宽度</td></tr>
|
|
574
|
+
<tr><td><code>statusBarHeight</code></td><td><code>number</code></td><td>是</td><td>状态栏高度</td></tr>
|
|
575
|
+
<tr><td><code>windowHeight</code></td><td><code>number</code></td><td>是</td><td>可使用窗口高度</td></tr>
|
|
576
|
+
<tr><td><code>windowWidth</code></td><td><code>number</code></td><td>是</td><td>可使用窗口宽度</td></tr>
|
|
577
|
+
</tbody>
|
|
578
|
+
</table>
|
|
579
|
+
|
|
580
|
+
### 返回示例
|
|
581
|
+
|
|
582
|
+
```json
|
|
583
|
+
{
|
|
584
|
+
"pixelRatio": 3,
|
|
585
|
+
"screenWidth": 393,
|
|
586
|
+
"screenHeight": 852,
|
|
587
|
+
"windowWidth": 393,
|
|
588
|
+
"windowHeight": 852,
|
|
589
|
+
"statusBarHeight": 59,
|
|
590
|
+
"safeArea": {
|
|
591
|
+
"left": 0,
|
|
592
|
+
"right": 393,
|
|
593
|
+
"top": 59,
|
|
594
|
+
"bottom": 818,
|
|
595
|
+
"width": 393,
|
|
596
|
+
"height": 759
|
|
597
|
+
},
|
|
598
|
+
"screenTop": 0
|
|
599
|
+
}
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
<a id="getappbaseinfo"></a>
|
|
603
|
+
### getAppBaseInfo()
|
|
604
|
+
|
|
605
|
+
# getAppBaseInfo
|
|
606
|
+
|
|
607
|
+
获取应用基础信息。
|
|
608
|
+
|
|
609
|
+
## 扫码预览
|
|
610
|
+

|
|
611
|
+
|
|
612
|
+
## 使用限制
|
|
613
|
+
|
|
614
|
+
> [!WARNING]
|
|
615
|
+
> **iOS**:iOS 仅提供接口声明未注册实现,调用直接返回不支持;iOS 上的异步调用无法获得成功结果。
|
|
616
|
+
|
|
617
|
+
## 支持版本
|
|
618
|
+
|
|
619
|
+
前端库版本不低于 `0.0.18`。
|
|
620
|
+
|
|
621
|
+
## 支持平台
|
|
622
|
+
|
|
623
|
+
<table>
|
|
624
|
+
<thead>
|
|
625
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
626
|
+
</thead>
|
|
627
|
+
<tbody>
|
|
628
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
629
|
+
<tr><td>iOS</td><td>不支持</td></tr>
|
|
630
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
631
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
632
|
+
</tbody>
|
|
633
|
+
</table>
|
|
634
|
+
|
|
635
|
+
## 支持场景
|
|
636
|
+
|
|
637
|
+
<table>
|
|
638
|
+
<thead>
|
|
639
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
640
|
+
</thead>
|
|
641
|
+
<tbody>
|
|
642
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
643
|
+
<tr><td>卡片</td><td>支持</td></tr>
|
|
644
|
+
</tbody>
|
|
645
|
+
</table>
|
|
646
|
+
|
|
647
|
+
## 使用说明
|
|
648
|
+
|
|
649
|
+
- iOS 当前不支持异步调用,跨平台场景请改用 getAppBaseInfoSync。
|
|
650
|
+
|
|
651
|
+
## 调用方式
|
|
652
|
+
|
|
653
|
+
### 异步 API
|
|
654
|
+
|
|
655
|
+
```typescript
|
|
656
|
+
getAppBaseInfo(params?: object): Promise<GetAppBaseInfoResult>
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
## 入参
|
|
660
|
+
|
|
661
|
+
无。
|
|
662
|
+
|
|
663
|
+
## 调用示例
|
|
664
|
+
|
|
665
|
+
```typescript
|
|
666
|
+
import { getAppBaseInfo } from '@doubao-dev/framework/api';
|
|
667
|
+
|
|
668
|
+
const result = await getAppBaseInfo();
|
|
669
|
+
|
|
670
|
+
console.log(result.language, result.SDKVersion, result.theme);
|
|
671
|
+
console.log(result.host?.appId, result.enableDebug);
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
## 成功返回
|
|
675
|
+
|
|
676
|
+
<table>
|
|
677
|
+
<thead>
|
|
678
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
679
|
+
</thead>
|
|
680
|
+
<tbody>
|
|
681
|
+
<tr><td><code>enableDebug</code></td><td><code>boolean</code></td><td>否</td><td>是否已打开调试</td></tr>
|
|
682
|
+
<tr><td><code>host</code></td><td><code>AppBaseInfoHost</code></td><td>否</td><td>当前豆包客户端信息</td></tr>
|
|
683
|
+
<tr><td><code>host.appId</code></td><td><code>string</code></td><td>否</td><td>当前豆包客户端的 appId</td></tr>
|
|
684
|
+
<tr><td><code>language</code></td><td><code>string</code></td><td>是</td><td>当前语言</td></tr>
|
|
685
|
+
<tr><td><code>SDKVersion</code></td><td><code>string</code></td><td>否</td><td>客户端基础库版本</td></tr>
|
|
686
|
+
<tr><td><code>theme</code></td><td><code>"light" | "dark"</code></td><td>否</td><td>当前主题</td></tr>
|
|
687
|
+
<tr><td><code>version</code></td><td><code>string</code></td><td>否</td><td>豆包客户端版本号</td></tr>
|
|
688
|
+
</tbody>
|
|
689
|
+
</table>
|
|
690
|
+
|
|
691
|
+
### 返回示例
|
|
692
|
+
|
|
693
|
+
```json
|
|
694
|
+
{
|
|
695
|
+
"SDKVersion": "0.0.36",
|
|
696
|
+
"host": {
|
|
697
|
+
"appId": "doubao"
|
|
698
|
+
},
|
|
699
|
+
"language": "zh_CN",
|
|
700
|
+
"version": "8.0.0",
|
|
701
|
+
"theme": "light"
|
|
702
|
+
}
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
<a id="onthemechange"></a>
|
|
706
|
+
### onThemeChange()
|
|
707
|
+
|
|
708
|
+
# onThemeChange
|
|
709
|
+
|
|
710
|
+
监听应用主题变化。
|
|
711
|
+
|
|
712
|
+
当用户在系统设置或豆包客户端内切换浅色、深色主题时触发。回调参数中的 `theme` 表示切换后的主题,可与
|
|
713
|
+
getAppBaseInfo 返回的 `theme` 字段配合使用。
|
|
714
|
+
|
|
715
|
+
## 扫码预览
|
|
716
|
+

|
|
717
|
+
|
|
718
|
+
## 支持版本
|
|
719
|
+
|
|
720
|
+
前端库版本不低于 `0.0.32`。
|
|
721
|
+
|
|
722
|
+
## 支持平台
|
|
723
|
+
|
|
724
|
+
<table>
|
|
725
|
+
<thead>
|
|
726
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
727
|
+
</thead>
|
|
728
|
+
<tbody>
|
|
729
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
730
|
+
<tr><td>iOS</td><td>支持</td></tr>
|
|
731
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
732
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
733
|
+
</tbody>
|
|
734
|
+
</table>
|
|
735
|
+
|
|
736
|
+
## 支持场景
|
|
737
|
+
|
|
738
|
+
<table>
|
|
739
|
+
<thead>
|
|
740
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
741
|
+
</thead>
|
|
742
|
+
<tbody>
|
|
743
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
744
|
+
<tr><td>卡片</td><td>支持</td></tr>
|
|
745
|
+
</tbody>
|
|
746
|
+
</table>
|
|
747
|
+
|
|
748
|
+
## 使用说明
|
|
749
|
+
|
|
750
|
+
- 调用返回的取消函数即可移除该监听;可与 getAppBaseInfo 返回的 theme 字段配合使用。
|
|
751
|
+
|
|
752
|
+
## 调用方式
|
|
753
|
+
|
|
754
|
+
### 事件监听 API
|
|
755
|
+
|
|
756
|
+
```typescript
|
|
757
|
+
onThemeChange(callback: ThemeChangeListener): () => void
|
|
758
|
+
```
|
|
759
|
+
|
|
760
|
+
## 入参
|
|
761
|
+
|
|
762
|
+
无。
|
|
763
|
+
|
|
764
|
+
## 调用示例
|
|
765
|
+
|
|
766
|
+
```typescript
|
|
767
|
+
import { onThemeChange } from '@doubao-dev/framework/api';
|
|
768
|
+
|
|
769
|
+
const offThemeChange = onThemeChange(({ theme }) => {
|
|
770
|
+
console.log('当前主题:', theme);
|
|
771
|
+
});
|
|
772
|
+
|
|
773
|
+
offThemeChange();
|
|
774
|
+
```
|
|
775
|
+
|
|
776
|
+
## 回调参数
|
|
777
|
+
|
|
778
|
+
<table>
|
|
779
|
+
<thead>
|
|
780
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
781
|
+
</thead>
|
|
782
|
+
<tbody>
|
|
783
|
+
<tr><td><code>event.theme</code></td><td><code>AppTheme</code></td><td>是</td><td>切换后的应用主题</td></tr>
|
|
784
|
+
</tbody>
|
|
785
|
+
</table>
|
|
786
|
+
|
|
787
|
+
## 返回值
|
|
788
|
+
|
|
789
|
+
返回取消当前监听函数的函数。
|
|
790
|
+
|
|
791
|
+
### 回调示例
|
|
792
|
+
|
|
793
|
+
```json
|
|
794
|
+
{
|
|
795
|
+
"theme": "dark"
|
|
796
|
+
}
|
|
797
|
+
```
|
|
798
|
+
|
|
799
|
+
## 平台差异
|
|
800
|
+
|
|
801
|
+
- **Android**:部分豆包 Android 版本可能不会触发主题变化事件
|
|
802
|
+
|
|
803
|
+
<a id="getsysteminfo"></a>
|
|
804
|
+
### getSystemInfo()
|
|
805
|
+
|
|
806
|
+
# getSystemInfo
|
|
807
|
+
|
|
808
|
+
获取系统信息。
|
|
809
|
+
|
|
810
|
+
## 扫码预览
|
|
811
|
+

|
|
812
|
+
|
|
813
|
+
## 支持版本
|
|
814
|
+
|
|
815
|
+
前端库版本不低于 `0.0.34`。
|
|
816
|
+
|
|
817
|
+
## 支持平台
|
|
818
|
+
|
|
819
|
+
<table>
|
|
820
|
+
<thead>
|
|
821
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
822
|
+
</thead>
|
|
823
|
+
<tbody>
|
|
824
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
825
|
+
<tr><td>iOS</td><td>支持</td></tr>
|
|
826
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
827
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
828
|
+
</tbody>
|
|
829
|
+
</table>
|
|
830
|
+
|
|
831
|
+
## 支持场景
|
|
832
|
+
|
|
833
|
+
<table>
|
|
834
|
+
<thead>
|
|
835
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
836
|
+
</thead>
|
|
837
|
+
<tbody>
|
|
838
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
839
|
+
<tr><td>卡片</td><td>支持</td></tr>
|
|
840
|
+
</tbody>
|
|
841
|
+
</table>
|
|
842
|
+
|
|
843
|
+
## 调用方式
|
|
844
|
+
|
|
845
|
+
### 异步 API
|
|
846
|
+
|
|
847
|
+
```typescript
|
|
848
|
+
getSystemInfo(params?: object): Promise<GetSystemInfoResult>
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
## 入参
|
|
852
|
+
|
|
853
|
+
无。
|
|
854
|
+
|
|
855
|
+
## 调用示例
|
|
856
|
+
|
|
857
|
+
```typescript
|
|
858
|
+
import { getSystemInfo } from '@doubao-dev/framework/api';
|
|
859
|
+
|
|
860
|
+
const result = await getSystemInfo();
|
|
861
|
+
|
|
862
|
+
console.log(result.brand, result.model, result.system);
|
|
863
|
+
console.log(result.screenWidth, result.screenHeight);
|
|
864
|
+
```
|
|
865
|
+
|
|
866
|
+
## 成功返回
|
|
867
|
+
|
|
868
|
+
<table>
|
|
869
|
+
<thead>
|
|
870
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
871
|
+
</thead>
|
|
872
|
+
<tbody>
|
|
873
|
+
<tr><td><code>abi</code></td><td><code>string</code></td><td>否</td><td>豆包客户端二进制接口类型(如 arm64-v8a),仅 Android 返回</td></tr>
|
|
874
|
+
<tr><td><code>benchmarkLevel</code></td><td><code>number</code></td><td>否</td><td>设备性能等级,-1 表示未知</td></tr>
|
|
875
|
+
<tr><td><code>brand</code></td><td><code>string</code></td><td>是</td><td>设备品牌</td></tr>
|
|
876
|
+
<tr><td><code>deviceOrientation</code></td><td><code>"portrait" | "landscape"</code></td><td>否</td><td>设备方向</td></tr>
|
|
877
|
+
<tr><td><code>enableDebug</code></td><td><code>boolean</code></td><td>否</td><td>是否已打开调试</td></tr>
|
|
878
|
+
<tr><td><code>language</code></td><td><code>string</code></td><td>是</td><td>系统语言,格式为 language_region,如 zh_CN、en_US</td></tr>
|
|
879
|
+
<tr><td><code>model</code></td><td><code>string</code></td><td>是</td><td>设备型号</td></tr>
|
|
880
|
+
<tr><td><code>pixelRatio</code></td><td><code>number</code></td><td>是</td><td>设备像素比,物理像素 = 逻辑像素 × pixelRatio</td></tr>
|
|
881
|
+
<tr><td><code>platform</code></td><td><code>string</code></td><td>是</td><td>客户端平台,取值为 "ios" 或 "android"</td></tr>
|
|
882
|
+
<tr><td><code>safeArea</code></td><td><code>SystemInfoSafeArea</code></td><td>否</td><td>在竖屏正方向下的安全区域,单位为逻辑像素</td></tr>
|
|
883
|
+
<tr><td><code>safeArea.bottom</code></td><td><code>number</code></td><td>否</td><td>安全区域右下角纵坐标</td></tr>
|
|
884
|
+
<tr><td><code>safeArea.height</code></td><td><code>number</code></td><td>否</td><td>安全区域高度</td></tr>
|
|
885
|
+
<tr><td><code>safeArea.left</code></td><td><code>number</code></td><td>否</td><td>安全区域左上角横坐标</td></tr>
|
|
886
|
+
<tr><td><code>safeArea.right</code></td><td><code>number</code></td><td>否</td><td>安全区域右下角横坐标</td></tr>
|
|
887
|
+
<tr><td><code>safeArea.top</code></td><td><code>number</code></td><td>否</td><td>安全区域左上角纵坐标</td></tr>
|
|
888
|
+
<tr><td><code>safeArea.width</code></td><td><code>number</code></td><td>否</td><td>安全区域宽度</td></tr>
|
|
889
|
+
<tr><td><code>screenHeight</code></td><td><code>number</code></td><td>是</td><td>屏幕高度,单位为逻辑像素</td></tr>
|
|
890
|
+
<tr><td><code>screenWidth</code></td><td><code>number</code></td><td>是</td><td>屏幕宽度,单位为逻辑像素</td></tr>
|
|
891
|
+
<tr><td><code>SDKVersion</code></td><td><code>string</code></td><td>否</td><td>客户端基础库版本</td></tr>
|
|
892
|
+
<tr><td><code>statusBarHeight</code></td><td><code>number</code></td><td>是</td><td>状态栏高度,单位为逻辑像素</td></tr>
|
|
893
|
+
<tr><td><code>system</code></td><td><code>string</code></td><td>是</td><td>操作系统及版本,如 "Android 14"、"iOS 17.5"</td></tr>
|
|
894
|
+
<tr><td><code>theme</code></td><td><code>"light" | "dark"</code></td><td>否</td><td>系统当前主题</td></tr>
|
|
895
|
+
<tr><td><code>version</code></td><td><code>string</code></td><td>否</td><td>豆包客户端版本号</td></tr>
|
|
896
|
+
<tr><td><code>windowHeight</code></td><td><code>number</code></td><td>是</td><td>可使用窗口高度,单位为逻辑像素</td></tr>
|
|
897
|
+
<tr><td><code>windowWidth</code></td><td><code>number</code></td><td>是</td><td>可使用窗口宽度,单位为逻辑像素</td></tr>
|
|
898
|
+
</tbody>
|
|
899
|
+
</table>
|
|
900
|
+
|
|
901
|
+
### 返回示例
|
|
902
|
+
|
|
903
|
+
```json
|
|
904
|
+
{
|
|
905
|
+
"brand": "Xiaomi",
|
|
906
|
+
"model": "23127PN0CC",
|
|
907
|
+
"pixelRatio": 3,
|
|
908
|
+
"screenWidth": 393,
|
|
909
|
+
"screenHeight": 852,
|
|
910
|
+
"windowWidth": 393,
|
|
911
|
+
"windowHeight": 852,
|
|
912
|
+
"statusBarHeight": 59,
|
|
913
|
+
"language": "zh_CN",
|
|
914
|
+
"version": "8.0.0",
|
|
915
|
+
"system": "Android 14",
|
|
916
|
+
"platform": "android",
|
|
917
|
+
"SDKVersion": "0.0.36",
|
|
918
|
+
"theme": "light",
|
|
919
|
+
"benchmarkLevel": 30,
|
|
920
|
+
"safeArea": {
|
|
921
|
+
"left": 0,
|
|
922
|
+
"right": 393,
|
|
923
|
+
"top": 59,
|
|
924
|
+
"bottom": 818,
|
|
925
|
+
"width": 393,
|
|
926
|
+
"height": 759
|
|
927
|
+
},
|
|
928
|
+
"enableDebug": false,
|
|
929
|
+
"deviceOrientation": "portrait",
|
|
930
|
+
"abi": "arm64-v8a"
|
|
931
|
+
}
|
|
932
|
+
```
|
|
933
|
+
|
|
934
|
+
## 错误处理
|
|
935
|
+
|
|
936
|
+
错误对象和通用错误码见 [通用错误处理](./common-errors.md#错误返回)。
|
|
937
|
+
|
|
938
|
+
### 错误码
|
|
939
|
+
|
|
940
|
+
#### 通用错误码
|
|
941
|
+
|
|
942
|
+
<table>
|
|
943
|
+
<thead>
|
|
944
|
+
<tr><th>errNo</th><th>errMsg</th><th>说明</th><th>平台</th></tr>
|
|
945
|
+
</thead>
|
|
946
|
+
<tbody>
|
|
947
|
+
<tr><td><code>102</code></td><td><code>internal error</code></td><td>内部错误</td><td>Android</td></tr>
|
|
948
|
+
</tbody>
|
|
949
|
+
</table>
|
|
950
|
+
|
|
951
|
+
## 平台差异
|
|
952
|
+
|
|
953
|
+
- **Android**:abi 返回豆包客户端二进制接口类型(如 arm64-v8a),iOS 不返回该字段
|
|
954
|
+
|
|
955
|
+
<a id="getsysteminfosync"></a>
|
|
956
|
+
### getSystemInfoSync()
|
|
957
|
+
|
|
958
|
+
# getSystemInfoSync
|
|
959
|
+
|
|
960
|
+
同步获取系统信息。
|
|
961
|
+
|
|
962
|
+
## 支持版本
|
|
963
|
+
|
|
964
|
+
前端库版本不低于 `0.0.34`。
|
|
965
|
+
|
|
966
|
+
## 支持平台
|
|
967
|
+
|
|
968
|
+
<table>
|
|
969
|
+
<thead>
|
|
970
|
+
<tr><th>平台</th><th>支持情况</th></tr>
|
|
971
|
+
</thead>
|
|
972
|
+
<tbody>
|
|
973
|
+
<tr><td>Android</td><td>支持</td></tr>
|
|
974
|
+
<tr><td>iOS</td><td>支持</td></tr>
|
|
975
|
+
<tr><td>PC</td><td>不支持</td></tr>
|
|
976
|
+
<tr><td>HarmonyOS</td><td>不支持</td></tr>
|
|
977
|
+
</tbody>
|
|
978
|
+
</table>
|
|
979
|
+
|
|
980
|
+
## 支持场景
|
|
981
|
+
|
|
982
|
+
<table>
|
|
983
|
+
<thead>
|
|
984
|
+
<tr><th>场景</th><th>支持情况</th></tr>
|
|
985
|
+
</thead>
|
|
986
|
+
<tbody>
|
|
987
|
+
<tr><td>页面</td><td>支持</td></tr>
|
|
988
|
+
<tr><td>卡片</td><td>支持</td></tr>
|
|
989
|
+
</tbody>
|
|
990
|
+
</table>
|
|
991
|
+
|
|
992
|
+
## 调用方式
|
|
993
|
+
|
|
994
|
+
### 同步 API
|
|
995
|
+
|
|
996
|
+
```typescript
|
|
997
|
+
getSystemInfoSync(_params?: object): GetSystemInfoResult
|
|
998
|
+
```
|
|
999
|
+
|
|
1000
|
+
## 入参
|
|
1001
|
+
|
|
1002
|
+
无。
|
|
1003
|
+
|
|
1004
|
+
## 调用示例
|
|
1005
|
+
|
|
1006
|
+
```typescript
|
|
1007
|
+
import { getSystemInfoSync } from '@doubao-dev/framework/api';
|
|
1008
|
+
|
|
1009
|
+
const result = getSystemInfoSync();
|
|
1010
|
+
|
|
1011
|
+
console.log(result.brand, result.model, result.system);
|
|
1012
|
+
console.log(result.screenWidth, result.screenHeight);
|
|
1013
|
+
```
|
|
1014
|
+
|
|
1015
|
+
## 返回值
|
|
1016
|
+
|
|
1017
|
+
<table>
|
|
1018
|
+
<thead>
|
|
1019
|
+
<tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
|
|
1020
|
+
</thead>
|
|
1021
|
+
<tbody>
|
|
1022
|
+
<tr><td><code>abi</code></td><td><code>string</code></td><td>否</td><td>豆包客户端二进制接口类型(如 arm64-v8a),仅 Android 返回</td></tr>
|
|
1023
|
+
<tr><td><code>benchmarkLevel</code></td><td><code>number</code></td><td>否</td><td>设备性能等级,-1 表示未知</td></tr>
|
|
1024
|
+
<tr><td><code>brand</code></td><td><code>string</code></td><td>是</td><td>设备品牌</td></tr>
|
|
1025
|
+
<tr><td><code>deviceOrientation</code></td><td><code>"portrait" | "landscape"</code></td><td>否</td><td>设备方向</td></tr>
|
|
1026
|
+
<tr><td><code>enableDebug</code></td><td><code>boolean</code></td><td>否</td><td>是否已打开调试</td></tr>
|
|
1027
|
+
<tr><td><code>language</code></td><td><code>string</code></td><td>是</td><td>系统语言,格式为 language_region,如 zh_CN、en_US</td></tr>
|
|
1028
|
+
<tr><td><code>model</code></td><td><code>string</code></td><td>是</td><td>设备型号</td></tr>
|
|
1029
|
+
<tr><td><code>pixelRatio</code></td><td><code>number</code></td><td>是</td><td>设备像素比,物理像素 = 逻辑像素 × pixelRatio</td></tr>
|
|
1030
|
+
<tr><td><code>platform</code></td><td><code>string</code></td><td>是</td><td>客户端平台,取值为 "ios" 或 "android"</td></tr>
|
|
1031
|
+
<tr><td><code>safeArea</code></td><td><code>SystemInfoSafeArea</code></td><td>否</td><td>在竖屏正方向下的安全区域,单位为逻辑像素</td></tr>
|
|
1032
|
+
<tr><td><code>safeArea.bottom</code></td><td><code>number</code></td><td>否</td><td>安全区域右下角纵坐标</td></tr>
|
|
1033
|
+
<tr><td><code>safeArea.height</code></td><td><code>number</code></td><td>否</td><td>安全区域高度</td></tr>
|
|
1034
|
+
<tr><td><code>safeArea.left</code></td><td><code>number</code></td><td>否</td><td>安全区域左上角横坐标</td></tr>
|
|
1035
|
+
<tr><td><code>safeArea.right</code></td><td><code>number</code></td><td>否</td><td>安全区域右下角横坐标</td></tr>
|
|
1036
|
+
<tr><td><code>safeArea.top</code></td><td><code>number</code></td><td>否</td><td>安全区域左上角纵坐标</td></tr>
|
|
1037
|
+
<tr><td><code>safeArea.width</code></td><td><code>number</code></td><td>否</td><td>安全区域宽度</td></tr>
|
|
1038
|
+
<tr><td><code>screenHeight</code></td><td><code>number</code></td><td>是</td><td>屏幕高度,单位为逻辑像素</td></tr>
|
|
1039
|
+
<tr><td><code>screenWidth</code></td><td><code>number</code></td><td>是</td><td>屏幕宽度,单位为逻辑像素</td></tr>
|
|
1040
|
+
<tr><td><code>SDKVersion</code></td><td><code>string</code></td><td>否</td><td>客户端基础库版本</td></tr>
|
|
1041
|
+
<tr><td><code>statusBarHeight</code></td><td><code>number</code></td><td>是</td><td>状态栏高度,单位为逻辑像素</td></tr>
|
|
1042
|
+
<tr><td><code>system</code></td><td><code>string</code></td><td>是</td><td>操作系统及版本,如 "Android 14"、"iOS 17.5"</td></tr>
|
|
1043
|
+
<tr><td><code>theme</code></td><td><code>"light" | "dark"</code></td><td>否</td><td>系统当前主题</td></tr>
|
|
1044
|
+
<tr><td><code>version</code></td><td><code>string</code></td><td>否</td><td>豆包客户端版本号</td></tr>
|
|
1045
|
+
<tr><td><code>windowHeight</code></td><td><code>number</code></td><td>是</td><td>可使用窗口高度,单位为逻辑像素</td></tr>
|
|
1046
|
+
<tr><td><code>windowWidth</code></td><td><code>number</code></td><td>是</td><td>可使用窗口宽度,单位为逻辑像素</td></tr>
|
|
1047
|
+
</tbody>
|
|
1048
|
+
</table>
|
|
1049
|
+
|
|
1050
|
+
### 返回示例
|
|
1051
|
+
|
|
1052
|
+
```json
|
|
1053
|
+
{
|
|
1054
|
+
"brand": "Xiaomi",
|
|
1055
|
+
"model": "23127PN0CC",
|
|
1056
|
+
"pixelRatio": 3,
|
|
1057
|
+
"screenWidth": 393,
|
|
1058
|
+
"screenHeight": 852,
|
|
1059
|
+
"windowWidth": 393,
|
|
1060
|
+
"windowHeight": 852,
|
|
1061
|
+
"statusBarHeight": 59,
|
|
1062
|
+
"language": "zh_CN",
|
|
1063
|
+
"version": "8.0.0",
|
|
1064
|
+
"system": "Android 14",
|
|
1065
|
+
"platform": "android",
|
|
1066
|
+
"SDKVersion": "0.0.36",
|
|
1067
|
+
"theme": "light",
|
|
1068
|
+
"benchmarkLevel": 30,
|
|
1069
|
+
"safeArea": {
|
|
1070
|
+
"left": 0,
|
|
1071
|
+
"right": 393,
|
|
1072
|
+
"top": 59,
|
|
1073
|
+
"bottom": 818,
|
|
1074
|
+
"width": 393,
|
|
1075
|
+
"height": 759
|
|
1076
|
+
},
|
|
1077
|
+
"enableDebug": false,
|
|
1078
|
+
"deviceOrientation": "portrait",
|
|
1079
|
+
"abi": "arm64-v8a"
|
|
1080
|
+
}
|
|
1081
|
+
```
|
|
1082
|
+
|
|
1083
|
+
## 错误处理
|
|
1084
|
+
|
|
1085
|
+
同步调用失败时抛出错误。错误对象和通用错误码见 [通用错误处理](./common-errors.md#错误返回)。
|
|
1086
|
+
|
|
1087
|
+
### 错误码
|
|
1088
|
+
|
|
1089
|
+
#### 通用错误码
|
|
1090
|
+
|
|
1091
|
+
<table>
|
|
1092
|
+
<thead>
|
|
1093
|
+
<tr><th>errNo</th><th>errMsg</th><th>说明</th><th>平台</th></tr>
|
|
1094
|
+
</thead>
|
|
1095
|
+
<tbody>
|
|
1096
|
+
<tr><td><code>102</code></td><td><code>internal error</code></td><td>内部错误</td><td>Android</td></tr>
|
|
1097
|
+
</tbody>
|
|
1098
|
+
</table>
|
|
1099
|
+
|
|
1100
|
+
## 平台差异
|
|
1101
|
+
|
|
1102
|
+
- **Android**:abi 返回豆包客户端二进制接口类型(如 arm64-v8a),iOS 不返回该字段
|
|
1103
|
+
|
|
1104
|
+
## 相关类型
|
|
1105
|
+
|
|
1106
|
+
<a id="windowsafearea"></a>
|
|
1107
|
+
### WindowSafeArea
|
|
1108
|
+
|
|
1109
|
+
#### Properties
|
|
1110
|
+
|
|
1111
|
+
• **left**: `number` - 安全区域左上角横坐标
|
|
1112
|
+
• **right**: `number` - 安全区域右下角横坐标
|
|
1113
|
+
• **top**: `number` - 安全区域左上角纵坐标
|
|
1114
|
+
• **bottom**: `number` - 安全区域右下角纵坐标
|
|
1115
|
+
• **width**: `number` - 安全区域宽度
|
|
1116
|
+
• **height**: `number` - 安全区域高度
|
|
1117
|
+
|
|
1118
|
+
<a id="getwindowinforesult"></a>
|
|
1119
|
+
### GetWindowInfoResult
|
|
1120
|
+
|
|
1121
|
+
#### Properties
|
|
1122
|
+
|
|
1123
|
+
• **pixelRatio**: `number` - 设备像素比
|
|
1124
|
+
• **screenWidth**: `number` - 屏幕宽度
|
|
1125
|
+
• **screenHeight**: `number` - 屏幕高度
|
|
1126
|
+
• **windowWidth**: `number` - 可使用窗口宽度
|
|
1127
|
+
• **windowHeight**: `number` - 可使用窗口高度
|
|
1128
|
+
• **statusBarHeight**: `number` - 状态栏高度
|
|
1129
|
+
• **safeArea?**: `WindowSafeArea` - 安全区域
|
|
1130
|
+
• **screenTop**: `number` - 窗口上边缘的 y 值
|
|
1131
|
+
|
|
1132
|
+
<a id="deviceorientation"></a>
|
|
1133
|
+
### DeviceOrientation
|
|
1134
|
+
|
|
1135
|
+
#### Type
|
|
1136
|
+
|
|
1137
|
+
`'portrait' | 'landscape'`
|
|
1138
|
+
|
|
1139
|
+
<a id="getsystemsettingresult"></a>
|
|
1140
|
+
### GetSystemSettingResult
|
|
1141
|
+
|
|
1142
|
+
#### Properties
|
|
1143
|
+
|
|
1144
|
+
• **bluetoothEnabled**: `boolean` - 蓝牙的系统开关
|
|
1145
|
+
• **locationEnabled**: `boolean` - 地理位置的系统开关
|
|
1146
|
+
• **wifiEnabled**: `boolean` - Wi-Fi 的系统开关
|
|
1147
|
+
• **deviceOrientation**: `DeviceOrientation` - 设备方向
|
|
1148
|
+
|
|
1149
|
+
<a id="healthdatatype"></a>
|
|
1150
|
+
### HealthDataType
|
|
1151
|
+
|
|
1152
|
+
#### Type
|
|
1153
|
+
|
|
1154
|
+
`BridgeHealthDataType`
|
|
1155
|
+
|
|
1156
|
+
<a id="appauthorizestatus"></a>
|
|
1157
|
+
### AppAuthorizeStatus
|
|
1158
|
+
|
|
1159
|
+
#### Type
|
|
1160
|
+
|
|
1161
|
+
`'authorized' | 'denied' | 'not determined'`
|
|
1162
|
+
|
|
1163
|
+
<a id="unauthorizeddetail"></a>
|
|
1164
|
+
### UnauthorizedDetail
|
|
1165
|
+
|
|
1166
|
+
尚未获得权限时的精细状态。 取值说明: - not determined:系统明确表示用户尚未作出选择 - denied:当前没有权限;可能是用户拒绝、关闭权限,或平台无法进一步区分拒绝原因 - restricted:系统明确表示权限受设备管理、家长控制等策略限制,用户无法直接修改。
|
|
1167
|
+
|
|
1168
|
+
#### Type
|
|
1169
|
+
|
|
1170
|
+
`'not determined' | 'denied' | 'restricted'`
|
|
1171
|
+
|
|
1172
|
+
<a id="basicauthorizationdetail"></a>
|
|
1173
|
+
### BasicAuthorizationDetail
|
|
1174
|
+
|
|
1175
|
+
只有完整授权和未授权状态的权限所使用的通用精细状态。 继承 UnauthorizedDetail 的全部取值,并增加: - full:已获得该权限的完整访问能力。
|
|
1176
|
+
|
|
1177
|
+
#### Type
|
|
1178
|
+
|
|
1179
|
+
`UnauthorizedDetail | 'full'`
|
|
1180
|
+
|
|
1181
|
+
<a id="albumauthorizationdetail"></a>
|
|
1182
|
+
### AlbumAuthorizationDetail
|
|
1183
|
+
|
|
1184
|
+
相册精细授权状态。 继承 BasicAuthorizationDetail 的全部取值,并增加: - limited:只能访问用户选择的部分照片;支持 iOS 和 Android 14 及以上版本。 - add only:只能向相册添加照片,不能读取相册内容;仅 iOS 支持。
|
|
1185
|
+
|
|
1186
|
+
#### Type
|
|
1187
|
+
|
|
1188
|
+
`BasicAuthorizationDetail | 'limited' | 'add only'`
|
|
1189
|
+
|
|
1190
|
+
<a id="phonecalendarauthorizationdetail"></a>
|
|
1191
|
+
### PhoneCalendarAuthorizationDetail
|
|
1192
|
+
|
|
1193
|
+
系统日历精细授权状态。 继承 BasicAuthorizationDetail 的全部取值,并增加: - read only:只能读取日历,不能新增、修改或删除日程;仅 Android 支持。 - write only:只能新增日程,不能读取现有日历数据。
|
|
1194
|
+
|
|
1195
|
+
#### Type
|
|
1196
|
+
|
|
1197
|
+
`BasicAuthorizationDetail | 'read only' | 'write only'`
|
|
1198
|
+
|
|
1199
|
+
<a id="locationauthorizationdetail"></a>
|
|
1200
|
+
### LocationAuthorizationDetail
|
|
1201
|
+
|
|
1202
|
+
定位精细授权状态。 继承 UnauthorizedDetail 的全部取值;获得权限时返回: - foreground approximate:仅应用在前台时可以获取模糊定位。 - foreground precise:仅应用在前台时可以获取精确定位。 - background approximate:应用在前台或后台时均可以获取模糊定位。 - background precise:应用在前台或后台时均可以获取精确定位。
|
|
1203
|
+
|
|
1204
|
+
#### Type
|
|
1205
|
+
|
|
1206
|
+
`| UnauthorizedDetail
|
|
1207
|
+
| 'foreground approximate'
|
|
1208
|
+
| 'foreground precise'
|
|
1209
|
+
| 'background approximate'
|
|
1210
|
+
| 'background precise'`
|
|
1211
|
+
|
|
1212
|
+
<a id="bluetoothauthorizationdetail"></a>
|
|
1213
|
+
### BluetoothAuthorizationDetail
|
|
1214
|
+
|
|
1215
|
+
蓝牙精细授权状态。 继承 BasicAuthorizationDetail 的全部取值,并增加: - partial:只获得部分已声明的蓝牙子权限;仅 Android 支持。
|
|
1216
|
+
|
|
1217
|
+
#### Type
|
|
1218
|
+
|
|
1219
|
+
`BasicAuthorizationDetail | 'partial'`
|
|
1220
|
+
|
|
1221
|
+
<a id="notificationauthorizationdetail"></a>
|
|
1222
|
+
### NotificationAuthorizationDetail
|
|
1223
|
+
|
|
1224
|
+
通知精细授权状态。 继承 BasicAuthorizationDetail 的全部取值,并增加: - provisional:iOS 临时静默授权;不会弹出授权框,通知只进入通知中心。
|
|
1225
|
+
|
|
1226
|
+
#### Type
|
|
1227
|
+
|
|
1228
|
+
`BasicAuthorizationDetail | 'provisional'`
|
|
1229
|
+
|
|
1230
|
+
<a id="healthdataauthorizationstatus"></a>
|
|
1231
|
+
### HealthDataAuthorizationStatus
|
|
1232
|
+
|
|
1233
|
+
HealthKit 读取权限状态码。 - -1:未知或当前系统不支持该类型 - 0:系统仍需要展示授权请求 - 1:轻量查询推断为已拒绝 - 2:轻量查询未发现授权错误。
|
|
1234
|
+
|
|
1235
|
+
#### Type
|
|
1236
|
+
|
|
1237
|
+
`-1 | 0 | 1 | 2`
|
|
1238
|
+
|
|
1239
|
+
<a id="healthdataauthorizationitem"></a>
|
|
1240
|
+
### HealthDataAuthorizationItem
|
|
1241
|
+
|
|
1242
|
+
#### Properties
|
|
1243
|
+
|
|
1244
|
+
• **type**: `HealthDataType` - 健康数据类型
|
|
1245
|
+
• **status**: `HealthDataAuthorizationStatus` - 当前类型的读取权限状态码
|
|
1246
|
+
|
|
1247
|
+
<a id="healthdataauthorizationdetail"></a>
|
|
1248
|
+
### HealthDataAuthorizationDetail
|
|
1249
|
+
|
|
1250
|
+
#### Properties
|
|
1251
|
+
|
|
1252
|
+
• **readStatus**: `HealthDataAuthorizationItem[]` - iOS SDK 支持的全部健康类型及其读取状态
|
|
1253
|
+
|
|
1254
|
+
<a id="getappauthorizesettingresult"></a>
|
|
1255
|
+
### GetAppAuthorizeSettingResult
|
|
1256
|
+
|
|
1257
|
+
#### Properties
|
|
1258
|
+
|
|
1259
|
+
• **albumAuthorized**: `AppAuthorizeStatus` - 相册授权状态;Android 固定返回 not determined
|
|
1260
|
+
• **bluetoothAuthorized**: `AppAuthorizeStatus` - 蓝牙授权状态
|
|
1261
|
+
• **cameraAuthorized**: `AppAuthorizeStatus` - 摄像头授权状态
|
|
1262
|
+
• **locationAuthorized**: `AppAuthorizeStatus` - 定位授权状态
|
|
1263
|
+
• **locationReducedAccuracy**: `boolean` - 是否只能使用模糊定位;仅在 iOS 且定位已授权时具有精度含义,Android 固定返回 false
|
|
1264
|
+
• **microphoneAuthorized**: `AppAuthorizeStatus` - 麦克风授权状态
|
|
1265
|
+
• **notificationAuthorized**: `AppAuthorizeStatus` - 通知总授权状态
|
|
1266
|
+
• **notificationAlertAuthorized**: `AppAuthorizeStatus` - 通知提醒授权状态;Android 固定返回 not determined
|
|
1267
|
+
• **notificationBadgeAuthorized**: `AppAuthorizeStatus` - 通知角标授权状态;Android 固定返回 not determined
|
|
1268
|
+
• **notificationSoundAuthorized**: `AppAuthorizeStatus` - 通知声音授权状态;Android 固定返回 not determined
|
|
1269
|
+
• **phoneCalendarAuthorized**: `AppAuthorizeStatus` - 系统日历授权状态
|
|
1270
|
+
• **albumAuthorizationDetail?**: `AlbumAuthorizationDetail | null` - 相册精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 null。 继承 BasicAuthorizationDetail 的全部取值,并增加: - limited:只能访问用户选择的部分照片;支持 iOS 和 Android 14 及以上版本。 - add only:只能向相册添加照片,不能读取相册内容;仅 iOS 支持
|
|
1271
|
+
• **bluetoothAuthorizationDetail?**: `BluetoothAuthorizationDetail | null` - 蓝牙精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 null。 继承 BasicAuthorizationDetail 的全部取值,并增加: - partial:只获得部分已声明的蓝牙子权限;仅 Android 支持
|
|
1272
|
+
• **cameraAuthorizationDetail?**: `CameraAuthorizationDetail | null` - 摄像头精细授权状态,取值与 BasicAuthorizationDetail 一致;旧客户端或无法可靠映射时不返回该字段或返回 null
|
|
1273
|
+
• **locationAuthorizationDetail?**: `LocationAuthorizationDetail | null` - 定位精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 null。 继承 UnauthorizedDetail 的全部取值;获得权限时返回: - foreground approximate:仅应用在前台时可以获取模糊定位。 - foreground precise:仅应用在前台时可以获取精确定位。 - background approximate:应用在前台或后台时均可以获取模糊定位。 - background precise:应用在前台或后台时均可以获取精确定位
|
|
1274
|
+
• **microphoneAuthorizationDetail?**: `MicrophoneAuthorizationDetail | null` - 麦克风精细授权状态,取值与 BasicAuthorizationDetail 一致;旧客户端或无法可靠映射时不返回该字段或返回 null
|
|
1275
|
+
• **notificationAuthorizationDetail?**: `NotificationAuthorizationDetail | null` - 通知精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 null。 继承 BasicAuthorizationDetail 的全部取值,并增加: - provisional:iOS 临时静默授权;不会弹出授权框,通知只进入通知中心
|
|
1276
|
+
• **phoneCalendarAuthorizationDetail?**: `PhoneCalendarAuthorizationDetail | null` - 系统日历精细授权状态;旧客户端或无法可靠映射时不返回该字段或返回 null。 继承 BasicAuthorizationDetail 的全部取值,并增加: - read only:只能读取日历,不能新增、修改或删除日程;仅 Android 支持。 - write only:只能新增日程,不能读取现有日历数据
|
|
1277
|
+
• **healthDataAuthorizationDetail?**: `HealthDataAuthorizationDetail | null` - HealthKit 逐类型读取授权状态;仅 iOS 新版本客户端返回。 Apple 不提供读取权限的精确查询接口。status 为 1 或 2 时采用轻量查询推断, “已授权但没有数据”和“拒绝读取”仍可能无法可靠区分;业务应以实际读取结果为准
|
|
1278
|
+
|
|
1279
|
+
<a id="cameraauthorizationdetail"></a>
|
|
1280
|
+
### CameraAuthorizationDetail
|
|
1281
|
+
|
|
1282
|
+
摄像头精细授权状态,取值与 BasicAuthorizationDetail 一致。
|
|
1283
|
+
|
|
1284
|
+
#### Type
|
|
1285
|
+
|
|
1286
|
+
`BasicAuthorizationDetail`
|
|
1287
|
+
|
|
1288
|
+
<a id="microphoneauthorizationdetail"></a>
|
|
1289
|
+
### MicrophoneAuthorizationDetail
|
|
1290
|
+
|
|
1291
|
+
麦克风精细授权状态,取值与 BasicAuthorizationDetail 一致。
|
|
1292
|
+
|
|
1293
|
+
#### Type
|
|
1294
|
+
|
|
1295
|
+
`BasicAuthorizationDetail`
|
|
1296
|
+
|
|
1297
|
+
<a id="appbaseinfohost"></a>
|
|
1298
|
+
### AppBaseInfoHost
|
|
1299
|
+
|
|
1300
|
+
#### Properties
|
|
1301
|
+
|
|
1302
|
+
• **appId**: `string` - 当前豆包客户端的 appId
|
|
1303
|
+
|
|
1304
|
+
<a id="getappbaseinforesult"></a>
|
|
1305
|
+
### GetAppBaseInfoResult
|
|
1306
|
+
|
|
1307
|
+
#### Properties
|
|
1308
|
+
|
|
1309
|
+
• **SDKVersion?**: `string` - 客户端基础库版本
|
|
1310
|
+
• **enableDebug?**: `boolean` - 是否已打开调试
|
|
1311
|
+
• **host?**: `AppBaseInfoHost` - 当前豆包客户端信息
|
|
1312
|
+
• **language**: `string` - 当前语言
|
|
1313
|
+
• **version?**: `string` - 豆包客户端版本号
|
|
1314
|
+
• **theme?**: `'light' | 'dark'` - 当前主题
|
|
1315
|
+
|
|
1316
|
+
<a id="apptheme"></a>
|
|
1317
|
+
### AppTheme
|
|
1318
|
+
|
|
1319
|
+
应用主题。
|
|
1320
|
+
|
|
1321
|
+
#### Type
|
|
1322
|
+
|
|
1323
|
+
`'light' | 'dark'`
|
|
1324
|
+
|
|
1325
|
+
<a id="themechangelistener"></a>
|
|
1326
|
+
### ThemeChangeListener
|
|
1327
|
+
|
|
1328
|
+
应用主题变化事件监听函数。
|
|
1329
|
+
|
|
1330
|
+
#### Type
|
|
1331
|
+
|
|
1332
|
+
`(event: ThemeChangeEvent) => void`
|
|
1333
|
+
|
|
1334
|
+
<a id="themechangeevent"></a>
|
|
1335
|
+
### ThemeChangeEvent
|
|
1336
|
+
|
|
1337
|
+
#### Properties
|
|
1338
|
+
|
|
1339
|
+
• **theme**: `AppTheme` - 切换后的应用主题
|
|
1340
|
+
|
|
1341
|
+
<a id="systeminfosafearea"></a>
|
|
1342
|
+
### SystemInfoSafeArea
|
|
1343
|
+
|
|
1344
|
+
#### Properties
|
|
1345
|
+
|
|
1346
|
+
• **left**: `number` - 安全区域左上角横坐标
|
|
1347
|
+
• **right**: `number` - 安全区域右下角横坐标
|
|
1348
|
+
• **top**: `number` - 安全区域左上角纵坐标
|
|
1349
|
+
• **bottom**: `number` - 安全区域右下角纵坐标
|
|
1350
|
+
• **width**: `number` - 安全区域宽度
|
|
1351
|
+
• **height**: `number` - 安全区域高度
|
|
1352
|
+
|
|
1353
|
+
<a id="getsysteminforesult"></a>
|
|
1354
|
+
### GetSystemInfoResult
|
|
1355
|
+
|
|
1356
|
+
#### Properties
|
|
1357
|
+
|
|
1358
|
+
• **brand**: `string` - 设备品牌
|
|
1359
|
+
• **model**: `string` - 设备型号
|
|
1360
|
+
• **pixelRatio**: `number` - 设备像素比,物理像素 = 逻辑像素 × pixelRatio
|
|
1361
|
+
• **screenWidth**: `number` - 屏幕宽度,单位为逻辑像素
|
|
1362
|
+
• **screenHeight**: `number` - 屏幕高度,单位为逻辑像素
|
|
1363
|
+
• **windowWidth**: `number` - 可使用窗口宽度,单位为逻辑像素
|
|
1364
|
+
• **windowHeight**: `number` - 可使用窗口高度,单位为逻辑像素
|
|
1365
|
+
• **statusBarHeight**: `number` - 状态栏高度,单位为逻辑像素
|
|
1366
|
+
• **language**: `string` - 系统语言,格式为 language_region,如 zh_CN、en_US
|
|
1367
|
+
• **version?**: `string` - 豆包客户端版本号
|
|
1368
|
+
• **system**: `string` - 操作系统及版本,如 "Android 14"、"iOS 17.5"
|
|
1369
|
+
• **platform**: `string` - 客户端平台,取值为 "ios" 或 "android"
|
|
1370
|
+
• **SDKVersion?**: `string` - 客户端基础库版本
|
|
1371
|
+
• **theme?**: `'light' | 'dark'` - 系统当前主题
|
|
1372
|
+
• **benchmarkLevel?**: `number` - 设备性能等级,-1 表示未知
|
|
1373
|
+
• **safeArea?**: `SystemInfoSafeArea` - 在竖屏正方向下的安全区域,单位为逻辑像素
|
|
1374
|
+
• **enableDebug?**: `boolean` - 是否已打开调试
|
|
1375
|
+
• **deviceOrientation?**: `'portrait' | 'landscape'` - 设备方向
|
|
1376
|
+
• **abi?**: `string` - 豆包客户端二进制接口类型(如 arm64-v8a),仅 Android 返回
|