收件人未与任何设备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 的分支引用识别发件人