如何在expo-router中通过通知引导用户跳转至指定页面?
Expo Router 点击通知跳转特定页面配置说明
必要的特定设置
- 确保项目已正确集成 Expo Router v2 及以上版本,
app目录下的目标跳转页面已存在,路由结构配置完整。 - 在
app.json中配置基础通知展示参数(保证通知能正常显示):
{ "expo": { "notification": { "icon": "./assets/notification-icon.png", "color": "#2196F3" } } }
- 无需额外安装依赖,Expo Router 已内置通知跳转处理逻辑,但要避免自定义代码覆盖默认的通知响应监听。
通知格式/数据要求
无论本地通知还是推送通知,必须在通知内容的 data 字段中指定 url 属性,值为 Expo Router 的相对路由路径(以 / 开头,对应 app 目录下的页面路径)。
推送通知(Expo Push API)Payload 示例
{ "to": "你的 Expo 推送令牌", "title": "新消息提醒", "body": "收到一条新评论", "data": { "url": "/comments/123" } }
本地通知(expo-notifications)示例
import * as Notifications from 'expo-notifications'; async function sendLocalNotification() { await Notifications.scheduleNotificationAsync({ content: { title: "订单更新", body: "你的订单已发货", data: { url: "/orders/456" } }, trigger: { seconds: 3 } }); }
注意事项
- 动态路由参数(如
[id])可直接写入url,Expo Router 会自动解析并跳转至对应页面。 - App 处于前台时,点击通知也会触发路由跳转;若自定义了
Notifications.addNotificationResponseReceivedListener,需避免覆盖 Expo Router 的默认处理逻辑。 - 测试时优先验证 App 在后台或关闭状态下的跳转效果,部分平台前台通知的交互逻辑略有差异。
内容的提问来源于stack exchange,提问作者Felix Perroud
相关产品推荐
相关产品推荐

