应用端实验室移动应用
00 / 00
原生能力
移动端相机、文件、推送、深链、Widget 等原生能力的接入边界
原生能力就是手机系统提供的东西:相机、相册、麦克风、通知、文件、Widget、定位、分享。别一开始全塞进模板,按产品需求一个一个加。
你将学到
- 怎么判断某个原生能力该不该现在接入
- Expo Go 和 Development Build 各自能覆盖什么
- 接入一种能力前需要想清楚的四个问题
- 权限被拒绝时怎么处理
常见能力怎么判断
先看你的产品在 MVP 阶段是否真的需要这个能力。表里的"验收重点"是接入后必须在真机上验证的点:
| 能力 | 适合什么时候加 | 验收重点 |
|---|---|---|
| 相机 / 相册 | 头像、图片上传、拍照识别 | 权限拒绝、图片压缩、上传失败 |
| 麦克风 | 录音、语音输入、会议记录 | 权限说明、录音中断、文件格式 |
| 推送 | 订单、任务、消息提醒 | token 注册、退订、静默失败 |
| 深链 | 登录回跳、分享打开、Widget 跳转 | scheme、fallback、登录态恢复 |
| Widget | 高频入口、状态展示 | 尺寸、更新频率、主 App 同步 |
接入流程
接入任何一种原生能力,思路都一样:先确认用户场景,再选 Expo 提供的能力,真机验证,最后准备商店说明。
确认用户场景:为什么需要这个权限,对用户有什么价值。没有清晰场景的能力先不接。
选择 Expo 能力:查 Expo 文档,确认用哪个 SDK 或 config plugin。注意 Expo Go 不一定支持所有能力。
真机验证:权限弹窗、用户拒绝后的降级、功能在 iOS 和 Android 上的实际表现。
商店说明:App Store 和 Google Play 都要求在隐私说明里覆盖你用到的每个能力。
别跳过的检查
- Expo Go 能不能用这个能力,还是必须用 Development Build
- iOS 和 Android 的权限文案都配了没
- 用户拒绝权限时界面还能不能正常用
- 商店隐私说明有没有覆盖这个能力
用户拒绝权限是正常操作,不是异常。被拒绝后 App 要有合理的降级状态,不能直接崩溃或卡死。
下一步
需要给用户发通知的话,继续看推送通知的接入方式。
想和其他创造者交流?
这篇文档有问题?