SuperAPI AI 工具集

setup-plaud-react-native

前端与建站

查看项目

更新于 10-16 03:43

技能介绍

用途:把 Plaud 预编译原生设备 SDK 通过 Expo 模块桥接到 React Native,向 JavaScript 暴露 BLE 扫描/连接、设备端录音事件、文件列表和音频导出,并提供类型化事件流。iOS 与 Android 实现相同的 JS 接口、事件名和负载结构,业务代码无需分平台。

主要能力:PlaudSdk 为事件驱动。JS 调用 startScan、connectBleDevice、getFileList、exportAudio 触发工作,结果通过 addListener 订阅的事件(scanResult、connectState、fileList、exportProgress、scanTimeout)返回。initSDK 需传入按用户签发的 JWT(userAccessToken)、customDomain(仅域名,不带 https://)和 userId。

使用方式:本仓库中模块位于 modules/plaud-sdk/,完整示例应用在 react-native-demo/。先按顺序操作:裸 RN 应用先执行 npx install-expo-modules@latest;将模块复制到应用根目录的 modules/ 下,并确保 ios/Frameworks/ 的 .xcframework 与 android/libs/ 的 aar 完整复制;在 tsconfig.json 配置 plaud-sdk 路径映射;iOS 在 app.json 的 expo.ios.infoPlist 声明 NSBluetoothAlwaysUsageDescription 与 UIBackgroundModes,Android 权限由 aar 清单合并;随后 npx expo prebuild -p ios|android,再 npx expo run:ios --device 或 npx expo run:android。

限制:仅支持真机,iOS 框架为 arm64、iOS 15+,无模拟器切片;Android 需真实蓝牙,模拟器只会返回 scanTimeout(bluetoothNotPoweredOn)。必须使用自定义开发构建,Expo Go 无法加载。未链接平台(web、iOS 模拟器)isAvailable 为 false,所有方法会 reject,需在每个调用点加守卫。Android 上 startScan 会先请求权限,被拒时抛 ERR_PLAUD_PERMISSIONS。initSDK 不签发令牌,JWT 由应用后端负责;EXPO_PUBLIC_PLAUD_ACCESS_TOKEN 仅限本地测试。必须先扫描再连接。readFile/putBinary 在 RN 中不存在,导出文件用 expo-file-system 读取、fetch 上传。中文正文已尽量按资料事实整理。