5月30日 19:40
Expo 常用 API 如何在项目里安全使用?
Expo 常用 API 是 Expo SDK 对原生能力的封装,常见场景包括相机、定位、通知、文件系统、媒体库、传感器、安全存储和剪贴板。它的好处是用 JavaScript/TypeScript 调 iOS、Android 能力,少写原生桥接;安全使用的重点是权限、平台差异、开发构建方式和失败兜底是否处理完整。
追问
Expo 常用 API 可以分成哪些类型?
设备能力类包括 Camera、Location、Notifications、Sensors;系统能力类包括 FileSystem、SecureStore、Clipboard;媒体类包括 ImagePicker、Audio、Video。
为什么权限明明申请了还是拿不到?
很多权限既要运行时申请,也要在 app.json 或原生配置里声明用途文案。iOS 用户拒绝后再次请求不一定弹窗,Android 不同版本也有差异。
Expo API 和自定义原生模块怎么取舍?
常规能力优先用 Expo SDK;需要厂商支付、蓝牙深度能力、特殊后台服务时,要考虑 development build、config plugin 或原生模块。
Expo Go 能不能验证所有 API?
不能。Expo Go 适合预览通用能力,但不能包含你的自定义原生配置,也不适合验证真实推送证书、深链、后台任务。
实战里权限请求应该放在哪里?
不要每次渲染都请求权限,也不要一进 App 就弹所有权限。更稳的是在用户触发相机、定位、上传图片等动作时再申请。
写段代码
tsconst { status } = await Location.requestForegroundPermissionsAsync(); if (status === 'granted') await Location.getCurrentPositionAsync({});