1

我正在尝试在我的 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 上运行。谢谢。

4

0 回答 0