Expo 推送通知教程:4 步把第一条通知发到真机,含排错清单

发布时间:2026/10/30 18:56:45

Expo 推送通知教程:4 步把第一条通知发到真机,含排错清单 Expo 推送通知教程4 步把第一条通知发到真机含排错清单【免费下载链接】expoAn open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.项目地址: https://gitcode.com/GitHub_Trending/ex/expo想让离开的用户还能收到消息Expo 的推送能力是一条很顺的路expo-notifications库统一了 Android 和 iOS 的权限、令牌和事件 APIExpo Push Service 则替你把消息转交给 FCM 和 APNsFirebase Cloud Messaging / Apple Push Notification service两家厂商的官方推送通道你不需要自己对接任何原生推送协议。这篇教程围绕把一条真实通知发出去并确认到达来推进按 准备 → 运行 → 验证 → 排错 的顺序走一遍适合第一次接触 Expo 推送、手上有一个 Expo 项目的开发者。 准备装两个库加一个插件推送功能依赖两样东西expo-notifications负责客户端侧的权限和令牌逻辑expo-constants用来读取项目配置里的projectId。在项目根目录执行npx expo install expo-notifications expo-constants装完后在app.json里注册配置插件它会自动处理原生工程里的推送相关设置{ expo: { plugins: [expo-notifications] } }改完配置后用npx expo prebuild重新生成原生工程或直接用 EAS Build 构建。 运行拿到权限和令牌发出第一条通知推送链路里最关键的一步是拿到ExpoPushToken——Expo 为每台设备生成的地址服务端凭它找到用户。先在真机上请求通知权限再换取令牌import * as Notifications from expo-notifications; import Constants from expo-constants; async function getPushToken() { const { status } await Notifications.getPermissionsAsync(); if (status ! granted) { const r await Notifications.requestPermissionsAsync(); if (r.status ! granted) return null; // 用户拒绝 } // projectId 来自 EAS 项目配置令牌靠它关联到你的项目 const projectId Constants.easConfig?.projectId; return (await Notifications.getExpoPushTokenAsync({ projectId })).data; }把打印出的令牌贴到 Expo 推送工具里就能直接发测试消息。如果你有服务端用一条 HTTP 请求也能发to填令牌title和body填展示文案curl -X POST https://exp.host/--/api/v2/push/send \ -H Content-Type: application/json \ -d {to:ExponentPushToken[xxx],title:测试,body:第一条通知}响应里返回一张推送票据push ticketstatus为ok表示 Expo 已收到这条消息id留着验证阶段要用。✅ 验证怎么确认通知真的到了发出去了和设备收到了是两回事中间隔着 FCM/APNs 的投递环节。确认方法有两层看票据和回执。发送后拿票据id去查推送回执push receipt它是 Expo 把消息交给 FCM/APNs 后的结果记录curl -X POST https://exp.host/--/api/v2/push/getReceipts \ -H Content-Type: application/json \ -d {ids:[票据ID]}回执status为ok表示厂商通道已接收。建议发送 15 分钟后再查回执 24 小时后会被清除。在应用里监听事件。前台收到通知和点击通知是两件事分别对应两个监听器注册在useEffect里、卸载时移除const received Notifications.addNotificationReceivedListener(n { console.log(前台收到:, n.request.content); }); const response Notifications.addNotificationResponseReceivedListener(r { console.log(点击通知:, r.notification.request.content.data); });content.data是你在消息体里塞的自定义数据做点击后跳转到对应页面就靠它。 调优控制前台通知的表现默认行为可能不是你想要的SDK 58 之前应用在屏幕前foregrounded时收到的通知不会弹横幅SDK 58 起默认会展示。用setNotificationHandler可以精确控制是否响铃、弹横幅、入列表、加角标Notifications.setNotificationHandler({ handleNotification: async () ({ shouldPlaySound: false, // 前台收到时不响铃 shouldShowBanner: true, shouldShowList: true, shouldSetBadge: true, }), });另外两个常见调优点Android 通知渠道。Android 8.0 必须指定渠道发送时通过channelId字段引用渠道要在应用内用setNotificationChannelAsync先建好否则消息不会展示。点击跳转。在 response 监听器里读data.screen之类的字段调路由navigate到目标页面即推送深链。 排错通知不来的四个高频原因遇到问题先别怀疑代码按这个顺序过一遍用了 Expo Go 或模拟器。SDK 53 起 Expo Go 不再支持推送必须构建开发版development build或正式版在真机上测。凭据没配。Android 需要在 EAS 上传 FCM 凭据google-services.json FCM v1 服务账号密钥iOS 需要推送密钥。开发时能收到、发布后收不到基本都是这里漏了。用eas credentials检查。回执里报了DeviceNotRegistered。说明用户卸载了应用或撤销了权限该令牌已失效服务端应停发并清理记录不是你的 bug。iOS 取令牌特别慢。这是 Apple 侧的已知现象不代表出错。检查设备网络换 Wi-Fi 重试必要时重启设备。完整的问题清单和每个错误码的含义在 docs/pages/push-notifications/faq.mdx 里都有对应条目排错时直接查。下一步克隆仓库git clone https://gitcode.com/GitHub_Trending/ex/expo参考 docs/pages/push-notifications/push-notifications-setup.mdx 完成凭据配置。用apps/notification-tester/这个现成的测试应用跑一遍它在仓库里就是给expo-notifications做联调用的。给自己定个验收标准真机上收到横幅、票据和回执都是ok、点击能带数据跳转这三条都过就算接入完成。【免费下载链接】expoAn open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.项目地址: https://gitcode.com/GitHub_Trending/ex/expo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/27 17:13:27

前端面试八股文精华:JS核心、浏览器机制与框架原理全解析

前端面试这几年有个很有意思的现象:越是喊着“八股文没用”的人,面试时越容易栽在八股文上。我做了这么多年前端,也当过面试官,说句实话,“前端面试高频题”和“八股文精华”这两个词,本身不应该是贬义。真…

2026/10/27 17:57:04

Wi-Fi室内定位实战指南:不依赖UWB/蓝牙的低成本部署方案

简介:本资源是一个面向Android开发者与室内定位技术学习者的Wi-Fi指纹定位系统实战项目,聚焦商业场景下的无GPS室内位置感知需求,适用于智能建筑、商场导航、医疗资产追踪等应用开发。压缩包共2000个文件,总大小28.5MB&#xff0c…

2026/10/25 11:22:11

大模型强化学习:信息论低效下的有效机制解析

在 LLM(大语言模型)应用落地过程中,强化学习(RL,Reinforcement Learning)是一个绕不开的话题。从 ChatGPT 的 RLHF(基于人类反馈的强化学习),到 OpenAI o1 系列背后的 RL…

2026/10/30 18:56:10

【IEEE出版 | 高届数会议 | 马来西亚理工大学主办 | 广州线下主会场 + 线上参会可选】第八届国际科技创新学术交流大会暨第七届信息科学与教育国际学术会议(ICISE-IE 2026)

第八届国际科技创新学术交流大会暨第七届信息科学与教育国际学术会议(ICISE-IE 2026) 2026 8th International Academic Exchange Conference on Science and Technology Innovation&2026 7th International Conference on Information Science an…

2026/10/30 18:56:10

【经济学、管理学、人工智能、大数据、模型计算机相关交叉主题均为本届会议征稿范围 | 中国-广州】第八届国际科技创新学术交流大会暨经济管理与模型工程国际学术会议(ICEMME 2026)

第八届国际科技创新学术交流大会暨经济管理与模型工程国际学术会议(ICEMME 2026) The 8th International Conference on Economic Management and Model Engineering 随着全球化和信息化的不断深入,经济管理、模型工程之间的关系变得更加紧…

2026/10/30 18:56:10

龙格现象:采样点误差为零,插值曲线却给出了不可能的值

一、问题的提法:不比误差,比值域 用一条高次多项式精确穿过一排等间距的采样点,点越多,曲线在两端甩得越厉害。 这是龙格现象(Runges phenomenon)的一句话版本。但要把它变成一条能写进代码评审的判据,还差一步。 常见的讨论方式是「误差有多大」——误差 1.9 听起来…

2026/10/30 18:56:10

相机手感为什么总差一点:导数视角下的跟随、样条与弧长参数化

一、三个症状,同一个底层概念 先摆三个你大概率都遇到过的场景: 你给相机写了个跟随逻辑,在自己机器上试手感很好,交给同事试,对方说「有点飘」。你们俩跑的是同一份代码。 你给相机画了条样条路径让它平滑飞过,曲线画得很漂亮,跑起来相机却忽快忽慢。 你把路径上的控制…

2026/10/30 18:51:10

农业物联网与遥感技术在苗情灾情监控系统中的应用

1. 苗情灾情监控系统概述在现代农业生产中,及时掌握作物生长状况和灾害发生情况是提高农业生产效率的关键。苗情灾情监控系统通过整合物联网、遥感技术和数据分析手段,为农业生产者提供从田间到决策的全链条支持。这套系统能够实时监测作物生长参数、识别…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑