我有一个博览会应用程序,我正在尝试向其中添加推送通知。当在指向我本地计算机上运行的 Expo CLI 的实际设备上运行时,在 iOS 和 Android 上一切正常。
执行 expo build:android 然后从 expo 客户端应用程序中运行该应用程序或安装独立应用程序就是我看到问题的时候。收到推送通知后,应用程序将重新加载。如果应用程序位于前台,则不会显示通知,并且应用程序会在收到通知后立即重新加载。如果应用程序在后台并且用户点击通知,应用程序将打开并立即重新加载。当我说应用程序重新加载时,我的意思是应用程序看起来像是从关闭状态打开(出现启动画面并显示初始页面)。
由于连接到本地 Expo CLI 时一切正常,我认为生产模式可能会触发问题,但在将本地 Expo CLI 切换到生产模式后,一切都正常。
根据其他一些帖子,可能与正在使用的 android:launchMode expo 托管应用程序有关。由于这不是一个独立的应用程序,我认为我没有办法更改 AndroidManifest.xml 中设置的 launchMode。
我也尝试将其添加到 android 对象下的 app.json 中,但仍然没有成功。
"intentFilters": [
{
"action": "com.google.firebase.MESSAGING_EVENT"
}
]
一些额外的环境细节:
只要评论这一行,它就会起作用
notificationListener.current =
Notifications.addNotificationReceivedListener((notification) => {
// setNotification(notification);
});