收件人未与任何设备React Native Expo相关联

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了收件人未与任何设备React Native Expo相关联相关的知识,希望对你有一定的参考价值。

我正在尝试使用EXPO将推送通知从POSTMAN发送到我的RN应用程序。我最后得到了以下错误:

{
    "data": {
        "status": "error",
        "message": "The recipient "ExponentPushToken[OrxoEFOL4iLBfbNDSTUskn]" isn't associated with any device",
        "details": {
            "error": "DeviceNotRegistered"
        }
    }
}

任何人都可以上前帮我吗?

答案

由于设备未注册,我怀疑它是一个权限问题。

如果您使用android,则应在安装时启用推送通知。他们启用了吗?

如果您使用的是ios,则需要询问用户是否有权使用推送通知。你是否获得了正确的权限?

您可以使用expo导入权限

import { Permissions } from 'expo';

使用expo权限,您可以检查是否已授予权限,以及是否未向用户请求权限。

  const { status: existingStatus } = await Permissions.getAsync(
    Permissions.NOTIFICATIONS
  );
  let finalStatus = existingStatus;

  // only ask if permissions have not already been determined, because
  // iOS won't necessarily prompt the user a second time.
  if (existingStatus !== 'granted') {
    // Android remote notification permissions are granted during the app
    // install, so this will only ask on iOS
    const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
    finalStatus = status;
  }

这取自世博会文件。 https://docs.expo.io/versions/latest/guides/push-notifications.html

请记住,您无法将推送通知发送到标准模拟器。正如世博会所说,

注意:iOS和Android模拟器无法接收推送通知,要测试它们,您需要使用真实设备。此外,在模拟器上调用Permissions.askAsync时,无论您是否选择允许,它都会立即以“未确定”状态解析。

以上是关于收件人未与任何设备React Native Expo相关联的主要内容,如果未能解决你的问题,请参考以下文章

React Native BUILD SUCCEED,但“未启动任何设备”。

使用 react native 和 expo SQLite 在移动设备、iOS 和 Android 上存储大数据

在应用程序安装后使用带有 react-native 的分支引用识别发件人

React Native Expo 更改默认 LAN IP

使用 react-native-sensors 检测抖动设备事件?

react-native 中的设备 GPS 配置