我正在尝试在我的 Expo 应用程序中接收通知。我可以成功注册一个令牌,并且当应用程序没有被前台显示时,通知可以正常接收。但是,在 Android 上,只有addNotificationReceivedListener
回调不会被触发。当应用程序处于前台时,这在 iOS 和 Android 上运行良好,仅当应用程序未处于前台时。这是我注册回调的代码。
React.useEffect(() => {
Notifications.setNotificationHandler({
handleNotification: async () => ({
shouldShowAlert: true,
shouldPlaySound: true,
shouldSetBadge: false,
}),
});
Notifications.addNotificationReceivedListener(() => {
dispatch(setBalance({ amount: null }));
});
}, []);
这是我的 app.json
{
"name": "AppName",
"displayName": "AppName",
"expo": {
"name": "AppName",
"icon": "./assets/icon.png",
"slug": "slug",
"version": "1.0.0",
"assetBundlePatterns": ["**/*"],
"scheme": "appscheme",
"android": {
"package": "com.appdomain",
"enableDangerousExperimentalLeanBuilds": true,
"versionCode": 7,
"googleServicesFile": "./google-services.json",
"useNextNotificationsApi": true,
"permissions": ["RECEIVE_BOOT_COMPLETED"]
},
"ios": {
"bundleIdentifier": "com.appdomain",
"buildNumber": "7"
}
}
}
我正在使用我刚刚从 40 升级到的 Expo 41。它也无法在 40 上运行。谢谢。