宿主权限与网络
Headless 与 UI Kit 都需要宿主提供系统权限和网络访问条件。课堂中的功能权限与系统设备授权独立。
iOS / iPadOS
宿主 Info.plist 必须填写 NSCameraUsageDescription 与 NSMicrophoneUsageDescription;缺少用途说明时访问设备会导致进程退出。用途说明需放在 App target,不能只放 SDK Framework。示例见 iOS 指南。Apple 用途说明文档。
Android
检查宿主合并后的 manifest,并在打开设备前完成运行时授权:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
CAMERA 和 RECORD_AUDIO 需要运行时申请;用户拒绝后应保留重新选择或去设置页授权的入口。其他音频设备、屏幕共享与后台行为按宿主实际功能配置。参考 Android 运行时权限。
Web / H5
使用 HTTPS,或浏览器允许的 localhost 开发环境。嵌入 iframe 时由父页面配置摄像头、麦克风的 Permissions Policy。用户拒绝授权、没有匹配设备、设备被占用可能导致不同错误,不能一律显示网络异常。参考 getUserMedia。
生产构建需保留 JS/WASM 和白板静态资源。Web CSP、CORS、WebSocket 连接和跨域媒体读取需要覆盖实际部署地址。
网络入口
| 请求或资源 | 地址来源 |
|---|---|
| 课堂业务 HTTP | 客户端 backendUrl |
| IM HTTP / WebSocket | join 响应的 im.apiAddr / im.wsAddr |
| 白板房间服务 | join 响应的白板配置 |
| 遥测摄取 | join 响应的 telemetry.ingestUrl |
| 课件 / 白板资源 | 后台 manifest 或白板响应中的实际 URL |
公开客户端不能访问内网服务名或部署机器的 localhost。应修正服务端下发的地址,不在客户端把它们重写成另一个环境。
小程序需要配置 request、downloadFile、WebSocket 域名及平台媒体能力。后台域名也用于教学工具提示音下载。HarmonyOS 与桌面端需在宿主提供系统权限、可信证书及对应网络能力。
私有白板下载使用独立对象存储与短期签名 URL,需配置实际存储域名和 CORS;不要替换为公共 CDN。URL 过期后重新取得授权地址,避免把签名参数写入日志。
隐私接入
系统权限不能代替产品隐私告知。接入时需同时核对 SDK 初始化、设备标识、诊断上报和实际服务提供方,见信息采集清单和接入合规。