无法在构建 Android 应用程序中获取博览会推送通知令牌。 (在开发环境中工作)

Posted

技术标签:

【中文标题】无法在构建 Android 应用程序中获取博览会推送通知令牌。 (在开发环境中工作)【英文标题】:Cannot get expo Push Notification Token in build Android app. (working on the development environment) 【发布时间】:2020-07-24 14:34:23 【问题描述】:

在开发环境中(当应用程序通过二维码在安卓设备中运行时)推送通知令牌被成功检索。但是在构建应用程序并安装到同一设备后,不会检索到令牌。

我正在使用 Expo 文档中给出的示例代码来获取令牌。

useEffect(() => 
    registerForPushNotifications();
  , [])

registerForPushNotifications = async () => 
    if (Constants.isDevice) 
      const  status: existingStatus  = await Permissions.getAsync(Permissions.NOTIFICATIONS);
      if (existingStatus !== 'granted') 
        const  status  = await Permissions.askAsync(Permissions.NOTIFICATIONS);
        finalStatus = status;
      

      const token = await Notifications.getExpoPushTokenAsync();

      let body = new FormData();
      body.append('token', token);

      await ApiPublicForm.post('token/index.php', body)
        .then(function (response) 
          // console.log(response);
        )
        .catch(function (error) 
          // console.log(error);
        );

     else 
      alert('Must use physical device for Push Notifications');
    

    if (Platform.OS === 'android') 
      Notifications.createChannelAndroidAsync('default', 
        name: 'default',
        sound: true,
        priority: 'max',
        vibrate: [0, 250, 250, 250],
      );
    
  ;

我的 app.json

"android": 
  "permissions": [
    "NOTIFICATIONS"
  ],
  "versionCode": 3

【问题讨论】:

【参考方案1】:

得到问题的答案 您必须按照此链接中提到的步骤在独立应用程序中使用推送通知https://docs.expo.io/push-notifications/using-fcm/

【讨论】:

以上是关于无法在构建 Android 应用程序中获取博览会推送通知令牌。 (在开发环境中工作)的主要内容,如果未能解决你的问题,请参考以下文章

Expo没有运行

无法从博览会获取 localhost api

反应原生博览会。 Android暗模式问题

分享扩展反应原生 - 博览会

如何在反应本机博览会应用程序(android)中授予相机权限

TEMP FIX - 构建和上传 iOS 应用程序博览会(没有应用程序加载器)