Onesignal Expo SDK 设置 Google Android FCM 配置,无法读取 withSmallIcons (\withOneSignalAndroid.js) 处未定义的属性“smallIcons”

Lac*_*cey 4 react-native onesignal firebase-cloud-messaging expo react-native-onesignal

我正在使用 Onesignal 进行推送通知,但陷入错误并且很多天都找不到解决方案。

OneSignal SDK配置:

  1. 我在 Onesignal 上使用 Firebase 服务器密钥和 Firebase 发件人 ID 配置了 Google Android (FCM) 配置,并选择了 React Native/Expo SDK 并复制了 APP ID。

世博 SDK 设置:

  1. 我有 Expo Managed Workflow,所以我运行命令

展会安装 onesignal-expo-plugin

  1. 然后我执行了命令

纱线添加反应本机信号

  1. 将以下代码添加到 App.json 中

{ "plugins": [ "onesignal-expo-plugin", { "mode": "development", }] }

  1. 之后导入react-native-onesignal并在useEffect中使用APP ID到reuqired JS中

从 'react-native-onesignal' 导入 OneSignal;

useEffect(() => { OneSignal.setAppId("在此处粘贴复制的 APP ID"); }, []);

  1. 之后运行命令

世博预建

但出现错误

TypeError: Cannot read property 'smallIcons' of undefinedn at withSmallIcons (\node_modules\onesignal-expo-plugin\build\onesignal\withOneSignalAndroid.js)
Run Code Online (Sandbox Code Playgroud)

现在与此反应本机项目相关的所有控制台命令都会出现此错误。

我通过以下文档配置了 Onesignal https://documentation.onesignal.com/docs/react-native-expo-sdk-setup

Lac*_*cey 7

我解决了。实际上,错误发生在下面的代码中

"plugins": [
        "onesignal-expo-plugin",
        {
          "mode": "development"
        }
    ]
Run Code Online (Sandbox Code Playgroud)

添加额外的方括号 [ ] 解决了“无法读取未定义的属性‘smallIcons’”问题

"plugins": [
      [
        "onesignal-expo-plugin",
        {
          "mode": "development"
        }
      ]
    ]
Run Code Online (Sandbox Code Playgroud)