@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.
Files changed (107) hide show
  1. package/README.md +10 -2
  2. package/dist/147.js +9 -0
  3. package/dist/assets.d.ts +5 -0
  4. package/dist/assets.js +4 -0
  5. package/dist/index.d.ts +43 -0
  6. package/dist/index.js +1378 -0
  7. package/dist/plugin.d.ts +102 -0
  8. package/dist/plugin.js +4995 -0
  9. package/dist/preview.js +16 -0
  10. package/dist/rslib-runtime.js +33 -0
  11. package/dist/skills/doubao-plugin-app/SKILL.md +21 -0
  12. package/dist/skills/doubao-plugin-app/references/app-development.md +85 -0
  13. package/dist/skills/doubao-plugin-app/references/frontend/components/container-overlay.md +131 -0
  14. package/dist/skills/doubao-plugin-app/references/frontend/components/form-controls.md +146 -0
  15. package/dist/skills/doubao-plugin-app/references/frontend/components/interactive-controls.md +120 -0
  16. package/dist/skills/doubao-plugin-app/references/frontend/components/map-canvas.md +107 -0
  17. package/dist/skills/doubao-plugin-app/references/frontend/components/overview.md +43 -0
  18. package/dist/skills/doubao-plugin-app/references/frontend/components/scroll-list.md +149 -0
  19. package/dist/skills/doubao-plugin-app/references/frontend/components/text-media.md +209 -0
  20. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/01-/345/237/272/347/241/200.md +1389 -0
  21. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/02-/347/263/273/347/273/237.md +1376 -0
  22. 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
  23. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/04-/345/256/232/344/275/215.md +784 -0
  24. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/05-/345/255/230/345/202/250.md +1176 -0
  25. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/06-/350/267/257/347/224/261.md +839 -0
  26. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/07-/347/225/214/351/235/242.md +376 -0
  27. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/08-/344/272/244/344/272/222.md +1319 -0
  28. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/09-/350/276/223/345/205/245.md +192 -0
  29. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/10-/347/275/221/347/273/234.md +900 -0
  30. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/11-/345/252/222/344/275/223.md +1496 -0
  31. 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
  32. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/13-/347/231/273/345/275/225.md +511 -0
  33. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/14-/346/224/257/344/273/230.md +943 -0
  34. 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
  35. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/16-/350/223/235/347/211/231.md +3364 -0
  36. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/17-wi-fi.md +1028 -0
  37. 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
  38. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/19-ibeacon.md +508 -0
  39. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/20-/347/275/227/347/233/230.md +320 -0
  40. 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
  41. 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
  42. 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
  43. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/24-/347/237/255/344/277/241.md +155 -0
  44. 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
  45. 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
  46. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/27-/347/224/265/346/261/240.md +235 -0
  47. 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
  48. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/29-/345/212/240/345/257/206.md +126 -0
  49. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/30-/346/227/245/345/216/206.md +417 -0
  50. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/31-/347/224/265/350/257/235.md +144 -0
  51. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/32-/346/211/253/347/240/201.md +236 -0
  52. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/33-/345/261/217/345/271/225.md +747 -0
  53. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/34-/351/234/207/345/212/250.md +277 -0
  54. 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
  55. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/common-errors.md +69 -0
  56. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/groups.md +43 -0
  57. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/quick-reference.md +436 -0
  58. package/dist/skills/doubao-plugin-app/references/frontend/examples/common-patterns.md +590 -0
  59. package/dist/skills/doubao-plugin-app/references/frontend/examples/doubao-agentic-service-api-recipes.md +209 -0
  60. package/dist/skills/doubao-plugin-app/references/frontend/examples/page-widget-basics.md +368 -0
  61. package/dist/skills/doubao-plugin-app/references/frontend/examples/page-widget-recipes.md +65 -0
  62. package/dist/skills/doubao-plugin-app/references/frontend/framework/core.md +283 -0
  63. package/dist/skills/doubao-plugin-app/references/frontend/guides/auth.md +277 -0
  64. package/dist/skills/doubao-plugin-app/references/frontend/guides/best-practices.md +574 -0
  65. package/dist/skills/doubao-plugin-app/references/frontend/guides/client-tools-and-events.md +209 -0
  66. package/dist/skills/doubao-plugin-app/references/frontend/guides/component-development.md +832 -0
  67. package/dist/skills/doubao-plugin-app/references/frontend/guides/debugger-mcp.md +537 -0
  68. package/dist/skills/doubao-plugin-app/references/frontend/guides/expired-widget.md +101 -0
  69. package/dist/skills/doubao-plugin-app/references/frontend/guides/performance-optimization.md +417 -0
  70. package/dist/skills/doubao-plugin-app/references/frontend/guides/troubleshooting.md +278 -0
  71. package/dist/skills/doubao-plugin-app/references/frontend/lynx/best-practices.md +720 -0
  72. package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/pseudo-classes.md +149 -0
  73. package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/selectors.md +224 -0
  74. package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/supported-properties.md +269 -0
  75. package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/values-and-units.md +314 -0
  76. package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/flex-layout.md +334 -0
  77. package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/grid-layout.md +408 -0
  78. package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/linear-layout.md +355 -0
  79. package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/relative-layout.md +189 -0
  80. package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/css-differences.md +737 -0
  81. package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/migration-guide.md +669 -0
  82. package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/unsupported-features.md +290 -0
  83. package/dist/skills/doubao-plugin-app/references/frontend/lynx/overview.md +60 -0
  84. package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/animation.md +243 -0
  85. package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/responsive.md +194 -0
  86. package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/theming.md +143 -0
  87. package/dist/skills/doubao-plugin-app/references/frontend/lynx/quick-reference.md +229 -0
  88. package/dist/skills/doubao-plugin-app/references/frontend/rules/dos-and-donts.md +479 -0
  89. package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/design-boundary.md +46 -0
  90. package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/overview.md +118 -0
  91. package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/props.md +301 -0
  92. package/dist/skills/doubao-plugin-app/references/mcp-and-cards.md +38 -0
  93. package/dist/templates/README.md.template +11 -0
  94. package/dist/templates/com.doubao/app/manifest.yaml +41 -0
  95. package/dist/templates/com.doubao/app/package.json.template +13 -0
  96. package/dist/templates/com.doubao/app/src/app.config.ts.template +5 -0
  97. package/dist/templates/com.doubao/app/src/app.ts.template +3 -0
  98. package/dist/templates/com.doubao/app/src/pages/home/index.css +14 -0
  99. package/dist/templates/com.doubao/app/src/pages/home/index.tsx.template +14 -0
  100. package/dist/templates/com.doubao/app/src/widgets/example/index.tsx.template +29 -0
  101. package/dist/templates/com.doubao/app/tsconfig.json +19 -0
  102. package/dist/templates/mcp.json +9 -0
  103. package/dist/templates/plugin.json.template +29 -0
  104. package/dist/templates/skills/example/SKILL.md.template +14 -0
  105. package/dist/upload.d.ts +44 -0
  106. package/dist/upload.js +38 -0
  107. package/package.json +60 -3
@@ -0,0 +1,1028 @@
1
+ # 豆包应用插件的端能力 API: Wi-Fi
2
+
3
+ Wi-Fi 模块能力;通常先 startWifi,再获取列表或连接。
4
+
5
+ [返回目录](./groups.md) | [返回速查](./quick-reference.md)
6
+
7
+ ## 速查
8
+
9
+ | API | 说明 |
10
+ | --- | --- |
11
+ | [startWifi](#startwifi) | 初始化 Wi-Fi 模块。 |
12
+ | [stopWifi](#stopwifi) | 关闭 Wi-Fi 模块。 |
13
+ | [setWifiList](#setwifilist) | 设置 Wi-Fi 预设列表(iOS 特有)。 |
14
+ | [connectWifi](#connectwifi) | 连接指定 Wi-Fi。 |
15
+ | [getConnectedWifi](#getconnectedwifi) | 获取当前已连接 Wi-Fi 信息。 |
16
+ | [getWifiList](#getwifilist) | 获取 Wi-Fi 列表。 |
17
+ | [onWifiConnected](#onwificonnected) | 监听连接上 Wi-Fi 的事件。<br><br>返回取消监听函数。 |
18
+
19
+ ## API 详情
20
+
21
+ <a id="startwifi"></a>
22
+ ### startWifi()
23
+
24
+ # startWifi
25
+
26
+ 初始化 Wi-Fi 模块。
27
+
28
+ ## 扫码预览
29
+ ![扫码预览 startWifi](https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=doubao%3A%2F%2Fdoubao_apps%3Fapp_id%3Ddb_1McM5Ni%26path%3D%252Fpages%252Fapi%252Fdevice%252Fwifi-lifecycle%252Findex)
30
+
31
+ ## 支持版本
32
+
33
+ 前端库版本不低于 `0.0.25`。
34
+
35
+ ## 支持平台
36
+
37
+ <table>
38
+ <thead>
39
+ <tr><th>平台</th><th>支持情况</th></tr>
40
+ </thead>
41
+ <tbody>
42
+ <tr><td>Android</td><td>支持</td></tr>
43
+ <tr><td>iOS</td><td>支持</td></tr>
44
+ <tr><td>PC</td><td>不支持</td></tr>
45
+ <tr><td>HarmonyOS</td><td>不支持</td></tr>
46
+ </tbody>
47
+ </table>
48
+
49
+ ## 支持场景
50
+
51
+ <table>
52
+ <thead>
53
+ <tr><th>场景</th><th>支持情况</th></tr>
54
+ </thead>
55
+ <tbody>
56
+ <tr><td>页面</td><td>支持</td></tr>
57
+ <tr><td>卡片</td><td>不支持</td></tr>
58
+ </tbody>
59
+ </table>
60
+
61
+ ## 使用说明
62
+
63
+ Wi-Fi 流程入口。调用其他 Wi-Fi 接口前需先调用本接口完成初始化。
64
+
65
+ ## 调用方式
66
+
67
+ ### 异步 API
68
+
69
+ ```typescript
70
+ startWifi(params?: object): Promise<object>
71
+ ```
72
+
73
+ ## 入参
74
+
75
+ 无。
76
+
77
+ ## 调用示例
78
+
79
+ ```typescript
80
+ import { startWifi } from '@doubao-dev/framework/api';
81
+
82
+ await startWifi();
83
+ ```
84
+
85
+ ## 成功返回
86
+
87
+ 无返回字段。
88
+
89
+ ### 返回示例
90
+
91
+ ```json
92
+ {}
93
+ ```
94
+
95
+ ## 错误处理
96
+
97
+ 错误对象和通用错误码见 [通用错误处理](./common-errors.md#错误返回)。
98
+
99
+ ### 失败示例
100
+
101
+ ```json
102
+ {
103
+ "errNo": 103,
104
+ "errMsg": "feature not support"
105
+ }
106
+ ```
107
+
108
+ ### 错误码
109
+
110
+ <table>
111
+ <thead>
112
+ <tr><th>errNo</th><th>errMsg</th><th>平台</th><th>触发条件</th><th>处理建议</th></tr>
113
+ </thead>
114
+ <tbody>
115
+ <tr><td><code>103</code></td><td><code>feature not support</code></td><td>Android</td><td>设备无可用的 Wi-Fi 能力(缺少系统 Wi-Fi 服务)</td><td>检查设备是否支持 Wi-Fi,不支持时不要调用</td></tr>
116
+ </tbody>
117
+ </table>
118
+
119
+ #### 通用错误码
120
+
121
+ <table>
122
+ <thead>
123
+ <tr><th>errNo</th><th>errMsg</th><th>说明</th><th>平台</th></tr>
124
+ </thead>
125
+ <tbody>
126
+ <tr><td><code>102</code></td><td><code>internal error</code></td><td>内部错误</td><td>Android</td></tr>
127
+ </tbody>
128
+ </table>
129
+
130
+ ## 平台差异
131
+
132
+ - **iOS**:初始化恒返回成功,不返回失败错误码。
133
+
134
+ <a id="stopwifi"></a>
135
+ ### stopWifi()
136
+
137
+ # stopWifi
138
+
139
+ 关闭 Wi-Fi 模块。
140
+
141
+ ## 扫码预览
142
+ ![扫码预览 stopWifi](https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=doubao%3A%2F%2Fdoubao_apps%3Fapp_id%3Ddb_1McM5Ni%26path%3D%252Fpages%252Fapi%252Fdevice%252Fwifi-lifecycle%252Findex)
143
+
144
+ ## 支持版本
145
+
146
+ 前端库版本不低于 `0.0.25`。
147
+
148
+ ## 支持平台
149
+
150
+ <table>
151
+ <thead>
152
+ <tr><th>平台</th><th>支持情况</th></tr>
153
+ </thead>
154
+ <tbody>
155
+ <tr><td>Android</td><td>支持</td></tr>
156
+ <tr><td>iOS</td><td>支持</td></tr>
157
+ <tr><td>PC</td><td>不支持</td></tr>
158
+ <tr><td>HarmonyOS</td><td>不支持</td></tr>
159
+ </tbody>
160
+ </table>
161
+
162
+ ## 支持场景
163
+
164
+ <table>
165
+ <thead>
166
+ <tr><th>场景</th><th>支持情况</th></tr>
167
+ </thead>
168
+ <tbody>
169
+ <tr><td>页面</td><td>支持</td></tr>
170
+ <tr><td>卡片</td><td>不支持</td></tr>
171
+ </tbody>
172
+ </table>
173
+
174
+ ## 调用方式
175
+
176
+ ### 异步 API
177
+
178
+ ```typescript
179
+ stopWifi(params?: object): Promise<object>
180
+ ```
181
+
182
+ ## 入参
183
+
184
+ 无。
185
+
186
+ ## 调用示例
187
+
188
+ ```typescript
189
+ import { stopWifi } from '@doubao-dev/framework/api';
190
+
191
+ await stopWifi();
192
+ ```
193
+
194
+ ## 成功返回
195
+
196
+ 无返回字段。
197
+
198
+ ### 返回示例
199
+
200
+ ```json
201
+ {}
202
+ ```
203
+
204
+ <a id="setwifilist"></a>
205
+ ### setWifiList()
206
+
207
+ # setWifiList
208
+
209
+ 设置 Wi-Fi 预设列表(iOS 特有)。
210
+
211
+ ## 扫码预览
212
+ ![扫码预览 setWifiList](https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=doubao%3A%2F%2Fdoubao_apps%3Fapp_id%3Ddb_1McM5Ni%26path%3D%252Fpages%252Fapi%252Fdevice%252Fwifi-list%252Findex)
213
+
214
+ ## 使用限制
215
+
216
+ > [!WARNING]
217
+ > **Android**:豆包 Android 的 setWifiList 固定返回失败(setWifiList is iOS only);Android 上调用无法设置预设列表。
218
+
219
+ ## 支持版本
220
+
221
+ 前端库版本不低于 `0.0.25`。
222
+
223
+ ## 支持平台
224
+
225
+ <table>
226
+ <thead>
227
+ <tr><th>平台</th><th>支持情况</th></tr>
228
+ </thead>
229
+ <tbody>
230
+ <tr><td>Android</td><td>不支持</td></tr>
231
+ <tr><td>iOS</td><td>支持</td></tr>
232
+ <tr><td>PC</td><td>不支持</td></tr>
233
+ <tr><td>HarmonyOS</td><td>不支持</td></tr>
234
+ </tbody>
235
+ </table>
236
+
237
+ ## 支持场景
238
+
239
+ <table>
240
+ <thead>
241
+ <tr><th>场景</th><th>支持情况</th></tr>
242
+ </thead>
243
+ <tbody>
244
+ <tr><td>页面</td><td>支持</td></tr>
245
+ <tr><td>卡片</td><td>不支持</td></tr>
246
+ </tbody>
247
+ </table>
248
+
249
+ ## 接入准备
250
+
251
+ ### 前置条件
252
+
253
+ - **iOS**:需先调用 startWifi 完成初始化
254
+
255
+ ## 使用说明
256
+
257
+ 该接口为 iOS 特有,用于预设 Wi-Fi 列表。Android 不支持该能力,调用会失败。
258
+
259
+ - **Android**:该 API 在 Android 上不可用,调用会返回失败
260
+
261
+ ## 调用方式
262
+
263
+ ### 异步 API
264
+
265
+ ```typescript
266
+ setWifiList(params: SetWifiListParams): Promise<object>
267
+ ```
268
+
269
+ ## 入参
270
+
271
+ <table>
272
+ <thead>
273
+ <tr><th>名称</th><th>类型</th><th>必填</th><th>默认值</th><th>约束</th><th>说明</th></tr>
274
+ </thead>
275
+ <tbody>
276
+ <tr><td><code>wifiList</code></td><td><code>WifiListItem[]</code></td><td>是</td><td>-</td><td>-</td><td>预设的 Wi-Fi 列表。</td></tr>
277
+ <tr><td><code>wifiList[].bssid</code></td><td><code>string</code></td><td>否</td><td><code>-</code></td><td>-</td><td>Wi-Fi BSSID。</td></tr>
278
+ <tr><td><code>wifiList[].password</code></td><td><code>string</code></td><td>否</td><td><code>-</code></td><td>-</td><td>Wi-Fi 密码。</td></tr>
279
+ <tr><td><code>wifiList[].ssid</code></td><td><code>string</code></td><td>否</td><td><code>-</code></td><td>-</td><td>Wi-Fi SSID。</td></tr>
280
+ </tbody>
281
+ </table>
282
+
283
+ ## 调用示例
284
+
285
+ ```typescript
286
+ import { setWifiList } from '@doubao-dev/framework/api';
287
+
288
+ await setWifiList({
289
+ wifiList: [{ ssid: 'Office-WiFi', password: 'password' }]
290
+ });
291
+ ```
292
+
293
+ ## 成功返回
294
+
295
+ 无返回字段。
296
+
297
+ ### 返回示例
298
+
299
+ ```json
300
+ {}
301
+ ```
302
+
303
+ ## 错误处理
304
+
305
+ 错误对象和通用错误码见 [通用错误处理](./common-errors.md#错误返回)。
306
+
307
+ ### 失败示例
308
+
309
+ ```json
310
+ {
311
+ "errNo": 1401001,
312
+ "errMsg": "wifi is not initialized"
313
+ }
314
+ ```
315
+
316
+ ### 错误码
317
+
318
+ <table>
319
+ <thead>
320
+ <tr><th>errNo</th><th>errMsg</th><th>平台</th><th>触发条件</th><th>处理建议</th></tr>
321
+ </thead>
322
+ <tbody>
323
+ <tr><td><code>103</code></td><td><code>feature not support</code></td><td>Android</td><td>该 API 为 iOS 特有,Android 调用固定失败</td><td>不要在 Android 调用该 API</td></tr>
324
+ <tr><td><code>1401001</code></td><td><code>wifi is not initialized</code></td><td>iOS</td><td>调用前未先调用 startWifi 完成初始化</td><td>先调用 startWifi 再设置预设列表</td></tr>
325
+ </tbody>
326
+ </table>
327
+
328
+ #### 通用错误码
329
+
330
+ <table>
331
+ <thead>
332
+ <tr><th>errNo</th><th>errMsg</th><th>说明</th><th>平台</th></tr>
333
+ </thead>
334
+ <tbody>
335
+ <tr><td><code>102</code></td><td><code>internal error</code></td><td>内部错误</td><td>iOS</td></tr>
336
+ </tbody>
337
+ </table>
338
+
339
+ ## 平台差异
340
+
341
+ - **Android**:固定返回 103(该能力仅 iOS);iOS 未初始化返回 1401001,其他失败统一返回 102。
342
+
343
+ <a id="connectwifi"></a>
344
+ ### connectWifi()
345
+
346
+ # connectWifi
347
+
348
+ 连接指定 Wi-Fi。
349
+
350
+ ## 扫码预览
351
+ ![扫码预览 connectWifi](https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=doubao%3A%2F%2Fdoubao_apps%3Fapp_id%3Ddb_1McM5Ni%26path%3D%252Fpages%252Fapi%252Fdevice%252Fconnect-wifi%252Findex)
352
+
353
+ ## 使用限制
354
+
355
+ > [!WARNING]
356
+ > **iOS**:豆包 iOS 的连接实现不接收 bssid,仅按 ssid 与密码连接;iOS 上传入 bssid 不会生效。
357
+
358
+ ## 支持版本
359
+
360
+ 前端库版本不低于 `0.0.25`。
361
+
362
+ ## 支持平台
363
+
364
+ <table>
365
+ <thead>
366
+ <tr><th>平台</th><th>支持情况</th></tr>
367
+ </thead>
368
+ <tbody>
369
+ <tr><td>Android</td><td>支持</td></tr>
370
+ <tr><td>iOS</td><td>支持</td></tr>
371
+ <tr><td>PC</td><td>不支持</td></tr>
372
+ <tr><td>HarmonyOS</td><td>不支持</td></tr>
373
+ </tbody>
374
+ </table>
375
+
376
+ ## 支持场景
377
+
378
+ <table>
379
+ <thead>
380
+ <tr><th>场景</th><th>支持情况</th></tr>
381
+ </thead>
382
+ <tbody>
383
+ <tr><td>页面</td><td>支持</td></tr>
384
+ <tr><td>卡片</td><td>不支持</td></tr>
385
+ </tbody>
386
+ </table>
387
+
388
+ ## 接入准备
389
+
390
+ ### 前置条件
391
+
392
+ - 需先调用 startWifi 完成初始化
393
+
394
+ ## 使用说明
395
+
396
+ 通常先调用 startWifi。设置 manual 为 true 时会跳转到系统 Wi-Fi 设置页由用户手动连接。
397
+
398
+ - 连接过程由系统弹窗确认
399
+ - **iOS**:传入的 bssid 会被忽略,仅按 ssid 与 password 连接
400
+
401
+ ## 调用方式
402
+
403
+ ### 异步 API
404
+
405
+ ```typescript
406
+ connectWifi(params: ConnectWifiParams): Promise<object>
407
+ ```
408
+
409
+ ## 入参
410
+
411
+ <table>
412
+ <thead>
413
+ <tr><th>名称</th><th>类型</th><th>必填</th><th>默认值</th><th>约束</th><th>说明</th></tr>
414
+ </thead>
415
+ <tbody>
416
+ <tr><td><code>bssid</code></td><td><code>string</code></td><td>否</td><td><code>-</code></td><td>仅 Android 使用,iOS 会忽略该字段</td><td>Wi-Fi BSSID。iOS:豆包 iOS 的连接实现不接收 bssid,仅按 ssid 与密码连接。</td></tr>
417
+ <tr><td><code>manual</code></td><td><code>boolean</code></td><td>否</td><td><code>false</code></td><td>-</td><td>是否跳转到系统设置页连接。</td></tr>
418
+ <tr><td><code>partialInfo</code></td><td><code>boolean</code></td><td>否</td><td><code>false</code></td><td>-</td><td>是否仅返回部分 Wi-Fi 信息。</td></tr>
419
+ <tr><td><code>password</code></td><td><code>string</code></td><td>是</td><td>-</td><td>-</td><td>Wi-Fi 密码。</td></tr>
420
+ <tr><td><code>ssid</code></td><td><code>string</code></td><td>是</td><td>-</td><td>-</td><td>Wi-Fi SSID。</td></tr>
421
+ </tbody>
422
+ </table>
423
+
424
+ ## 调用示例
425
+
426
+ ```typescript
427
+ import { connectWifi, startWifi } from '@doubao-dev/framework/api';
428
+
429
+ await startWifi();
430
+ await connectWifi({ ssid: 'Office-WiFi', password: 'password' });
431
+ ```
432
+
433
+ ## 成功返回
434
+
435
+ 无返回字段。
436
+
437
+ ### 返回示例
438
+
439
+ ```json
440
+ {}
441
+ ```
442
+
443
+ ## 错误处理
444
+
445
+ 错误对象和通用错误码见 [通用错误处理](./common-errors.md#错误返回)。
446
+
447
+ ### 失败示例
448
+
449
+ ```json
450
+ {
451
+ "errNo": 1401003,
452
+ "errMsg": "connect wifi failed"
453
+ }
454
+ ```
455
+
456
+ ### 错误码
457
+
458
+ <table>
459
+ <thead>
460
+ <tr><th>errNo</th><th>errMsg</th><th>平台</th><th>触发条件</th><th>处理建议</th></tr>
461
+ </thead>
462
+ <tbody>
463
+ <tr><td><code>104</code></td><td><code>invalid parameter</code></td><td>Android、iOS</td><td>ssid 为空</td><td>传入非空的 ssid 后重试</td></tr>
464
+ <tr><td><code>103</code></td><td><code>feature not support</code></td><td>Android、iOS</td><td>设备无可用的 Wi-Fi 能力,或 iOS 系统版本过低不支持连接</td><td>检查设备与系统能力,不支持时不要调用</td></tr>
465
+ <tr><td><code>1401001</code></td><td><code>wifi is not initialized</code></td><td>Android、iOS</td><td>调用前未先调用 startWifi 完成初始化</td><td>先调用 startWifi 再连接 Wi-Fi</td></tr>
466
+ <tr><td><code>115</code></td><td><code>operation timeout</code></td><td>Android</td><td>连接 Wi-Fi 超时</td><td>确认目标网络可用后提示用户重试</td></tr>
467
+ <tr><td><code>1401003</code></td><td><code>connect wifi failed</code></td><td>Android、iOS</td><td>连接目标 Wi-Fi 失败(如密码错误、网络不可达、系统连接被拒)</td><td>检查 ssid 与密码后提示用户重试</td></tr>
468
+ </tbody>
469
+ </table>
470
+
471
+ #### 通用错误码
472
+
473
+ <table>
474
+ <thead>
475
+ <tr><th>errNo</th><th>errMsg</th><th>说明</th><th>平台</th></tr>
476
+ </thead>
477
+ <tbody>
478
+ <tr><td><code>102</code></td><td><code>internal error</code></td><td>内部错误</td><td>Android、iOS</td></tr>
479
+ </tbody>
480
+ </table>
481
+
482
+ ## 平台差异
483
+
484
+ - **Android**:连接超时返回 115;iOS 未细分超时,连接失败统一归为 1401003。
485
+
486
+ <a id="getconnectedwifi"></a>
487
+ ### getConnectedWifi()
488
+
489
+ # getConnectedWifi
490
+
491
+ 获取当前已连接 Wi-Fi 信息。
492
+
493
+ ## 扫码预览
494
+ ![扫码预览 getConnectedWifi](https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=doubao%3A%2F%2Fdoubao_apps%3Fapp_id%3Ddb_1McM5Ni%26path%3D%252Fpages%252Fapi%252Fdevice%252Fconnect-wifi%252Findex)
495
+
496
+ ## 使用限制
497
+
498
+ > [!WARNING]
499
+ > **Android、iOS**:豆包 Android 返回 0 到 100 的信号等级,iOS 返回 0 到 1 的归一化值;跨端使用同一阈值判断信号强弱会出错。
500
+
501
+ ## 支持版本
502
+
503
+ 前端库版本不低于 `0.0.25`。
504
+
505
+ ## 支持平台
506
+
507
+ <table>
508
+ <thead>
509
+ <tr><th>平台</th><th>支持情况</th></tr>
510
+ </thead>
511
+ <tbody>
512
+ <tr><td>Android</td><td>支持</td></tr>
513
+ <tr><td>iOS</td><td>支持</td></tr>
514
+ <tr><td>PC</td><td>不支持</td></tr>
515
+ <tr><td>HarmonyOS</td><td>不支持</td></tr>
516
+ </tbody>
517
+ </table>
518
+
519
+ ## 支持场景
520
+
521
+ <table>
522
+ <thead>
523
+ <tr><th>场景</th><th>支持情况</th></tr>
524
+ </thead>
525
+ <tbody>
526
+ <tr><td>页面</td><td>支持</td></tr>
527
+ <tr><td>卡片</td><td>不支持</td></tr>
528
+ </tbody>
529
+ </table>
530
+
531
+ ## 接入准备
532
+
533
+ ### 权限要求
534
+
535
+ <table>
536
+ <thead>
537
+ <tr><th>类型</th><th>标识</th><th>是否必须</th><th>平台</th><th>说明</th></tr>
538
+ </thead>
539
+ <tbody>
540
+ <tr><td>应用权限</td><td><code>scope.userLocation</code></td><td>按条件</td><td>iOS</td><td>豆包 iOS 读取 Wi-Fi 信息前需授权位置权限</td></tr>
541
+ <tr><td>系统权限</td><td>位置权限</td><td>按条件</td><td>Android、iOS</td><td>系统需开启定位并授予位置权限才能读取 Wi-Fi 信息</td></tr>
542
+ </tbody>
543
+ </table>
544
+
545
+ ### 授权行为
546
+
547
+ - **iOS**:首次读取 Wi-Fi 信息前会触发应用位置授权(scope.userLocation)与系统定位权限申请;用户拒绝后调用失败,需引导用户在系统设置及应用设置中开启位置权限
548
+ - **Android**:读取 Wi-Fi 信息依赖已授予的系统定位权限;未授予或被撤销时调用失败,需引导用户在系统设置中开启定位权限
549
+
550
+ ### 前置条件
551
+
552
+ - 需先调用 startWifi 完成初始化
553
+
554
+ ## 使用说明
555
+
556
+ - signalStrength 量纲双端不一致,Android 为 0 到 100,iOS 为 0 到 1
557
+
558
+ ## 调用方式
559
+
560
+ ### 异步 API
561
+
562
+ ```typescript
563
+ getConnectedWifi(params?: GetConnectedWifiParams): Promise<GetConnectedWifiResult>
564
+ ```
565
+
566
+ ## 入参
567
+
568
+ <table>
569
+ <thead>
570
+ <tr><th>名称</th><th>类型</th><th>必填</th><th>默认值</th><th>约束</th><th>说明</th></tr>
571
+ </thead>
572
+ <tbody>
573
+ <tr><td><code>partialInfo</code></td><td><code>boolean</code></td><td>否</td><td><code>false</code></td><td>-</td><td>是否只返回部分 Wi-Fi 信息。</td></tr>
574
+ </tbody>
575
+ </table>
576
+
577
+ ## 调用示例
578
+
579
+ ```typescript
580
+ import { getConnectedWifi } from '@doubao-dev/framework/api';
581
+
582
+ const { wifi } = await getConnectedWifi({ partialInfo: true });
583
+
584
+ console.log(wifi.ssid);
585
+ ```
586
+
587
+ ## 成功返回
588
+
589
+ <table>
590
+ <thead>
591
+ <tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
592
+ </thead>
593
+ <tbody>
594
+ <tr><td><code>wifi</code></td><td><code>WifiInfo</code></td><td>是</td><td>当前连接的 Wi-Fi 信息。</td></tr>
595
+ <tr><td><code>wifi.bssid</code></td><td><code>string</code></td><td>否</td><td>Wi-Fi BSSID。</td></tr>
596
+ <tr><td><code>wifi.frequency</code></td><td><code>number</code></td><td>否</td><td>频段,单位 MHz。</td></tr>
597
+ <tr><td><code>wifi.secure</code></td><td><code>boolean</code></td><td>否</td><td>Wi-Fi 是否安全。</td></tr>
598
+ <tr><td><code>wifi.signalStrength</code></td><td><code>number</code></td><td>否</td><td>信号强度。</td></tr>
599
+ <tr><td><code>wifi.ssid</code></td><td><code>string</code></td><td>是</td><td>Wi-Fi SSID。</td></tr>
600
+ </tbody>
601
+ </table>
602
+
603
+ ### 返回示例
604
+
605
+ ```json
606
+ {
607
+ "wifi": {
608
+ "ssid": "Office-WiFi",
609
+ "bssid": "a0:b1:c2:d3:e4:f5",
610
+ "secure": true,
611
+ "signalStrength": 80,
612
+ "frequency": 5180
613
+ }
614
+ }
615
+ ```
616
+
617
+ ## 错误处理
618
+
619
+ 错误对象和通用错误码见 [通用错误处理](./common-errors.md#错误返回)。
620
+
621
+ ### 失败示例
622
+
623
+ ```json
624
+ {
625
+ "errNo": 1401002,
626
+ "errMsg": "wifi is not connected"
627
+ }
628
+ ```
629
+
630
+ ### 错误码
631
+
632
+ <table>
633
+ <thead>
634
+ <tr><th>errNo</th><th>errMsg</th><th>平台</th><th>触发条件</th><th>处理建议</th></tr>
635
+ </thead>
636
+ <tbody>
637
+ <tr><td><code>1401001</code></td><td><code>wifi is not initialized</code></td><td>Android、iOS</td><td>调用前未先调用 startWifi 完成初始化</td><td>先调用 startWifi 再获取已连接 Wi-Fi</td></tr>
638
+ <tr><td><code>1401002</code></td><td><code>wifi is not connected</code></td><td>Android、iOS</td><td>当前未连接 Wi-Fi 或无法读取已连接 Wi-Fi 信息</td><td>确认设备已连接 Wi-Fi 后重试</td></tr>
639
+ <tr><td><code>106</code></td><td><code>system permission denied</code></td><td>iOS</td><td>系统定位服务未开启,无法读取 Wi-Fi 信息</td><td>引导用户在系统设置中开启定位服务</td></tr>
640
+ <tr><td><code>107</code></td><td><code>user permission denied</code></td><td>iOS</td><td>用户未授予定位权限或未开启精确定位</td><td>引导用户授予定位权限并开启精确定位</td></tr>
641
+ <tr><td><code>114</code></td><td><code>operation cancelled</code></td><td>iOS</td><td>用户取消了位置权限授权弹窗</td><td>用户需要时可再次触发授权后重试</td></tr>
642
+ <tr><td><code>301</code></td><td><code>network request cancelled</code></td><td>iOS</td><td>位置授权过程中的网络请求被取消</td><td>确认应用和网络状态后重试</td></tr>
643
+ <tr><td><code>302</code></td><td><code>connection timed out</code></td><td>iOS</td><td>位置授权过程中的网络连接超时</td><td>检查网络连接后重试</td></tr>
644
+ <tr><td><code>303</code></td><td><code>no network connection</code></td><td>iOS</td><td>当前无可用网络连接</td><td>恢复网络连接后重试</td></tr>
645
+ <tr><td><code>305</code></td><td><code>network failure</code></td><td>iOS</td><td>位置授权过程中发生其他网络错误</td><td>检查网络连接,稍后重试</td></tr>
646
+ <tr><td><code>112</code></td><td><code>invalid result</code></td><td>iOS</td><td>位置授权服务返回的数据无法解析</td><td>稍后重试;持续失败时反馈服务端响应异常</td></tr>
647
+ </tbody>
648
+ </table>
649
+
650
+ #### 通用错误码
651
+
652
+ <table>
653
+ <thead>
654
+ <tr><th>errNo</th><th>errMsg</th><th>说明</th><th>平台</th></tr>
655
+ </thead>
656
+ <tbody>
657
+ <tr><td><code>102</code></td><td><code>internal error</code></td><td>内部错误</td><td>Android、iOS</td></tr>
658
+ </tbody>
659
+ </table>
660
+
661
+ ## 平台差异
662
+
663
+ - **Android**:未连接或因缺少定位权限无法读取时统一返回 1401002;未初始化返回 1401001。
664
+ - **iOS**:读取前会发起位置权限授权,可返回 106/107 及授权网络类失败(301/302/303/305/112);读取阶段未连接返回 1401002。
665
+
666
+ <a id="getwifilist"></a>
667
+ ### getWifiList()
668
+
669
+ # getWifiList
670
+
671
+ 获取 Wi-Fi 列表。
672
+
673
+ ## 扫码预览
674
+ ![扫码预览 getWifiList](https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=doubao%3A%2F%2Fdoubao_apps%3Fapp_id%3Ddb_1McM5Ni%26path%3D%252Fpages%252Fapi%252Fdevice%252Fwifi-list%252Findex)
675
+
676
+ ## 使用限制
677
+
678
+ > [!WARNING]
679
+ > **iOS**:豆包 iOS 无系统扫描能力,仅返回当前已连接的一条 Wi-Fi;iOS 上无法列出周边 Wi-Fi,列表最多一条。
680
+
681
+ ## 支持版本
682
+
683
+ 前端库版本不低于 `0.0.25`。
684
+
685
+ ## 支持平台
686
+
687
+ <table>
688
+ <thead>
689
+ <tr><th>平台</th><th>支持情况</th></tr>
690
+ </thead>
691
+ <tbody>
692
+ <tr><td>Android</td><td>支持</td></tr>
693
+ <tr><td>iOS</td><td>支持</td></tr>
694
+ <tr><td>PC</td><td>不支持</td></tr>
695
+ <tr><td>HarmonyOS</td><td>不支持</td></tr>
696
+ </tbody>
697
+ </table>
698
+
699
+ ## 支持场景
700
+
701
+ <table>
702
+ <thead>
703
+ <tr><th>场景</th><th>支持情况</th></tr>
704
+ </thead>
705
+ <tbody>
706
+ <tr><td>页面</td><td>支持</td></tr>
707
+ <tr><td>卡片</td><td>不支持</td></tr>
708
+ </tbody>
709
+ </table>
710
+
711
+ ## 接入准备
712
+
713
+ ### 权限要求
714
+
715
+ <table>
716
+ <thead>
717
+ <tr><th>类型</th><th>标识</th><th>是否必须</th><th>平台</th><th>说明</th></tr>
718
+ </thead>
719
+ <tbody>
720
+ <tr><td>应用权限</td><td><code>scope.userLocation</code></td><td>按条件</td><td>iOS</td><td>豆包 iOS 读取 Wi-Fi 信息前需授权位置权限</td></tr>
721
+ <tr><td>系统权限</td><td>位置权限</td><td>按条件</td><td>Android、iOS</td><td>系统需开启定位并授予位置权限才能获取 Wi-Fi 列表</td></tr>
722
+ </tbody>
723
+ </table>
724
+
725
+ ### 授权行为
726
+
727
+ - **iOS**:首次获取 Wi-Fi 列表前会触发应用位置授权(scope.userLocation)与系统定位权限申请;用户拒绝后调用失败,需引导用户在系统设置及应用设置中开启位置权限
728
+ - **Android**:获取 Wi-Fi 列表依赖已授予的系统定位权限;未授予或被撤销时调用失败,需引导用户在系统设置中开启定位权限
729
+
730
+ ### 前置条件
731
+
732
+ - 需先调用 startWifi 完成初始化
733
+
734
+ ## 使用说明
735
+
736
+ 通常先调用 startWifi。
737
+
738
+ - **iOS**:列表最多返回一条当前已连接的 Wi-Fi,不代表周边可用网络
739
+
740
+ ## 调用方式
741
+
742
+ ### 异步 API
743
+
744
+ ```typescript
745
+ getWifiList(params?: object): Promise<GetWifiListResult>
746
+ ```
747
+
748
+ ## 入参
749
+
750
+ 无。
751
+
752
+ ## 调用示例
753
+
754
+ ```typescript
755
+ import { getWifiList, startWifi } from '@doubao-dev/framework/api';
756
+
757
+ await startWifi();
758
+ const { wifiList } = await getWifiList();
759
+
760
+ console.log(wifiList.map((wifi) => wifi.ssid));
761
+ ```
762
+
763
+ ## 成功返回
764
+
765
+ <table>
766
+ <thead>
767
+ <tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
768
+ </thead>
769
+ <tbody>
770
+ <tr><td><code>wifiList</code></td><td><code>WifiInfo[]</code></td><td>是</td><td>当前获取到的 Wi-Fi 列表。</td></tr>
771
+ <tr><td><code>wifiList[].bssid</code></td><td><code>string</code></td><td>否</td><td>Wi-Fi BSSID。</td></tr>
772
+ <tr><td><code>wifiList[].frequency</code></td><td><code>number</code></td><td>否</td><td>频段,单位 MHz。</td></tr>
773
+ <tr><td><code>wifiList[].secure</code></td><td><code>boolean</code></td><td>否</td><td>Wi-Fi 是否安全。</td></tr>
774
+ <tr><td><code>wifiList[].signalStrength</code></td><td><code>number</code></td><td>否</td><td>信号强度。</td></tr>
775
+ <tr><td><code>wifiList[].ssid</code></td><td><code>string</code></td><td>是</td><td>Wi-Fi SSID。</td></tr>
776
+ </tbody>
777
+ </table>
778
+
779
+ ### 返回示例
780
+
781
+ ```json
782
+ {
783
+ "wifiList": [
784
+ {
785
+ "ssid": "Office-WiFi",
786
+ "bssid": "a0:b1:c2:d3:e4:f5",
787
+ "secure": true,
788
+ "signalStrength": 80,
789
+ "frequency": 5180
790
+ }
791
+ ]
792
+ }
793
+ ```
794
+
795
+ ## 错误处理
796
+
797
+ 错误对象和通用错误码见 [通用错误处理](./common-errors.md#错误返回)。
798
+
799
+ ### 失败示例
800
+
801
+ ```json
802
+ {
803
+ "errNo": 1401001,
804
+ "errMsg": "wifi is not initialized"
805
+ }
806
+ ```
807
+
808
+ ### 错误码
809
+
810
+ <table>
811
+ <thead>
812
+ <tr><th>errNo</th><th>errMsg</th><th>平台</th><th>触发条件</th><th>处理建议</th></tr>
813
+ </thead>
814
+ <tbody>
815
+ <tr><td><code>1401001</code></td><td><code>wifi is not initialized</code></td><td>Android、iOS</td><td>调用前未先调用 startWifi 完成初始化</td><td>先调用 startWifi 再获取 Wi-Fi 列表</td></tr>
816
+ <tr><td><code>1401002</code></td><td><code>wifi is not connected</code></td><td>iOS</td><td>iOS 仅返回当前已连接 Wi-Fi,当前未连接时读取失败</td><td>确认设备已连接 Wi-Fi 后重试</td></tr>
817
+ <tr><td><code>106</code></td><td><code>system permission denied</code></td><td>iOS</td><td>系统定位服务未开启,无法读取 Wi-Fi 信息</td><td>引导用户在系统设置中开启定位服务</td></tr>
818
+ <tr><td><code>107</code></td><td><code>user permission denied</code></td><td>iOS</td><td>用户未授予定位权限或未开启精确定位</td><td>引导用户授予定位权限并开启精确定位</td></tr>
819
+ <tr><td><code>114</code></td><td><code>operation cancelled</code></td><td>iOS</td><td>用户取消了位置权限授权弹窗</td><td>用户需要时可再次触发授权后重试</td></tr>
820
+ <tr><td><code>301</code></td><td><code>network request cancelled</code></td><td>iOS</td><td>位置授权过程中的网络请求被取消</td><td>确认应用和网络状态后重试</td></tr>
821
+ <tr><td><code>302</code></td><td><code>connection timed out</code></td><td>iOS</td><td>位置授权过程中的网络连接超时</td><td>检查网络连接后重试</td></tr>
822
+ <tr><td><code>303</code></td><td><code>no network connection</code></td><td>iOS</td><td>当前无可用网络连接</td><td>恢复网络连接后重试</td></tr>
823
+ <tr><td><code>305</code></td><td><code>network failure</code></td><td>iOS</td><td>位置授权过程中发生其他网络错误</td><td>检查网络连接,稍后重试</td></tr>
824
+ <tr><td><code>112</code></td><td><code>invalid result</code></td><td>iOS</td><td>位置授权服务返回的数据无法解析</td><td>稍后重试;持续失败时反馈服务端响应异常</td></tr>
825
+ </tbody>
826
+ </table>
827
+
828
+ #### 通用错误码
829
+
830
+ <table>
831
+ <thead>
832
+ <tr><th>errNo</th><th>errMsg</th><th>说明</th><th>平台</th></tr>
833
+ </thead>
834
+ <tbody>
835
+ <tr><td><code>102</code></td><td><code>internal error</code></td><td>内部错误</td><td>Android、iOS</td></tr>
836
+ </tbody>
837
+ </table>
838
+
839
+ ## 平台差异
840
+
841
+ - **Android**:未初始化返回 1401001;扫描列表为空不视为失败;因定位权限不足导致读取失败时返回 102。
842
+ - **iOS**:仅返回当前已连接 Wi-Fi,未连接返回 1401002;读取前会发起位置权限授权,可返回 106/107 及授权网络类失败(301/302/303/305/112)。
843
+
844
+ <a id="onwificonnected"></a>
845
+ ### onWifiConnected()
846
+
847
+ # onWifiConnected
848
+
849
+ 监听连接上 Wi-Fi 的事件。
850
+
851
+ ## 扫码预览
852
+ ![扫码预览 onWifiConnected](https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=doubao%3A%2F%2Fdoubao_apps%3Fapp_id%3Ddb_1McM5Ni%26path%3D%252Fpages%252Fapi%252Fdevice%252Fwifi-lifecycle%252Findex)
853
+
854
+ ## 支持版本
855
+
856
+ 前端库版本不低于 `0.0.31`。
857
+
858
+ ## 支持平台
859
+
860
+ <table>
861
+ <thead>
862
+ <tr><th>平台</th><th>支持情况</th></tr>
863
+ </thead>
864
+ <tbody>
865
+ <tr><td>Android</td><td>支持</td></tr>
866
+ <tr><td>iOS</td><td>支持</td></tr>
867
+ <tr><td>PC</td><td>不支持</td></tr>
868
+ <tr><td>HarmonyOS</td><td>不支持</td></tr>
869
+ </tbody>
870
+ </table>
871
+
872
+ ## 支持场景
873
+
874
+ <table>
875
+ <thead>
876
+ <tr><th>场景</th><th>支持情况</th></tr>
877
+ </thead>
878
+ <tbody>
879
+ <tr><td>页面</td><td>支持</td></tr>
880
+ <tr><td>卡片</td><td>不支持</td></tr>
881
+ </tbody>
882
+ </table>
883
+
884
+ ## 接入准备
885
+
886
+ ### 前置条件
887
+
888
+ - 需先调用 startWifi 完成初始化
889
+
890
+ ## 调用方式
891
+
892
+ ### 事件监听 API
893
+
894
+ ```typescript
895
+ onWifiConnected(callback: (event: WifiConnectedEvent) => void): () => void
896
+ ```
897
+
898
+ ## 入参
899
+
900
+ 无。
901
+
902
+ ## 调用示例
903
+
904
+ ```ts
905
+ import { onWifiConnected } from '@doubao-dev/framework/api';
906
+
907
+ const off = onWifiConnected(({ wifi }) => {
908
+ console.log(wifi.ssid);
909
+ });
910
+
911
+ off();
912
+ ```
913
+
914
+ ## 回调参数
915
+
916
+ <table>
917
+ <thead>
918
+ <tr><th>名称</th><th>类型</th><th>必返</th><th>说明</th></tr>
919
+ </thead>
920
+ <tbody>
921
+ <tr><td><code>event.wifi</code></td><td><code>WifiInfo</code></td><td>是</td><td>已连接的 Wi-Fi 信息。</td></tr>
922
+ <tr><td><code>event.wifi.bssid</code></td><td><code>string</code></td><td>否</td><td>Wi-Fi BSSID。</td></tr>
923
+ <tr><td><code>event.wifi.frequency</code></td><td><code>number</code></td><td>否</td><td>频段,单位 MHz。</td></tr>
924
+ <tr><td><code>event.wifi.secure</code></td><td><code>boolean</code></td><td>否</td><td>Wi-Fi 是否安全。</td></tr>
925
+ <tr><td><code>event.wifi.signalStrength</code></td><td><code>number</code></td><td>否</td><td>信号强度。</td></tr>
926
+ <tr><td><code>event.wifi.ssid</code></td><td><code>string</code></td><td>是</td><td>Wi-Fi SSID。</td></tr>
927
+ </tbody>
928
+ </table>
929
+
930
+ ## 返回值
931
+
932
+ 返回取消当前监听函数的函数。
933
+
934
+ ### 回调示例
935
+
936
+ ```json
937
+ {
938
+ "wifi": {
939
+ "ssid": "Office-WiFi",
940
+ "bssid": "a0:b1:c2:d3:e4:f5",
941
+ "secure": true
942
+ }
943
+ }
944
+ ```
945
+
946
+ ## 相关类型
947
+
948
+ <a id="wifilistitem"></a>
949
+ ### WifiListItem
950
+
951
+ 预设 Wi-Fi 条目。
952
+
953
+ #### Properties
954
+
955
+ • **ssid?**: `string` - Wi-Fi SSID
956
+ • **bssid?**: `string` - Wi-Fi BSSID
957
+ • **password?**: `string` - Wi-Fi 密码
958
+
959
+ <a id="setwifilistparams"></a>
960
+ ### SetWifiListParams
961
+
962
+ 设置 Wi-Fi 预设列表的请求参数(iOS 特有)。
963
+
964
+ #### Properties
965
+
966
+ • **wifiList**: `WifiListItem[]` - 预设的 Wi-Fi 列表
967
+
968
+ <a id="connectwifiparams"></a>
969
+ ### ConnectWifiParams
970
+
971
+ 连接 Wi-Fi 的请求参数。
972
+
973
+ #### Properties
974
+
975
+ • **ssid**: `string` - Wi-Fi SSID
976
+ • **password**: `string` - Wi-Fi 密码
977
+ • **bssid?**: `string` - Wi-Fi BSSID
978
+ • **manual?**: `boolean` - 是否跳转到系统设置页连接
979
+ • **partialInfo?**: `boolean` - 是否仅返回部分 Wi-Fi 信息
980
+
981
+ <a id="wifiinfo"></a>
982
+ ### WifiInfo
983
+
984
+ Wi-Fi 信息。
985
+
986
+ #### Properties
987
+
988
+ • **ssid**: `string` - Wi-Fi SSID
989
+ • **bssid?**: `string` - Wi-Fi BSSID
990
+ • **secure?**: `boolean` - Wi-Fi 是否安全
991
+ • **signalStrength?**: `number` - 信号强度
992
+ • **frequency?**: `number` - 频段,单位 MHz
993
+
994
+ <a id="getconnectedwifiparams"></a>
995
+ ### GetConnectedWifiParams
996
+
997
+ 获取当前已连接 Wi-Fi 的请求参数。
998
+
999
+ #### Properties
1000
+
1001
+ • **partialInfo?**: `boolean` - 是否只返回部分 Wi-Fi 信息
1002
+
1003
+ <a id="getconnectedwifiresult"></a>
1004
+ ### GetConnectedWifiResult
1005
+
1006
+ 获取当前已连接 Wi-Fi 的返回结果。
1007
+
1008
+ #### Properties
1009
+
1010
+ • **wifi**: `WifiInfo` - 当前连接的 Wi-Fi 信息
1011
+
1012
+ <a id="getwifilistresult"></a>
1013
+ ### GetWifiListResult
1014
+
1015
+ 获取 Wi-Fi 列表的返回结果。
1016
+
1017
+ #### Properties
1018
+
1019
+ • **wifiList**: `WifiInfo[]` - 当前获取到的 Wi-Fi 列表
1020
+
1021
+ <a id="wificonnectedevent"></a>
1022
+ ### WifiConnectedEvent
1023
+
1024
+ Wi-Fi 连接事件。
1025
+
1026
+ #### Properties
1027
+
1028
+ • **wifi**: `WifiInfo` - 已连接的 Wi-Fi 信息