我创建了一个新的Expo项目,并尝试获取推送通知令牌,但失败。我收到一个错误:“ [未处理的承诺被拒绝:错误:无法获取设备的GCM令牌]”。我该如何解决?谢谢! 我的设备:三星Galaxy A5(2017),Android 8.0.0
我阅读了有关此内容的信息,它应该与“ expo start”一起使用,但对我而言这无效。 package.json中默认为“ expo start”。
package.json:
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"eject": "expo eject"
},
"dependencies": {
"expo": "^31.0.2",
"react": "16.5.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-31.0.0.tar.gz"
},
"devDependencies": {
"babel-preset-expo": "^5.0.0"
},
"private": true
}
App.js:
componentDidMount() {
this.registerForPushNotifications();
}
registerForPushNotifications = async () => {
const { status: existingStatus } = await Permissions.getAsync(
Permissions.NOTIFICATIONS
);
let finalStatus = existingStatus;
if (existingStatus !== 'granted'){
const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);
finalStatus = status;
}
if (finalStatus !== 'granted') {return;}
let token = await Notifications.getExpoPushTokenAsync();
console.log("token: ",token);
};
答案 0 :(得分:1)
对于其他遇到此问题的人,请尝试以下操作(不按顺序进行):
这些步骤对我有用。干杯
答案 1 :(得分:0)
您需要在Expo.io上拥有一个帐户。
然后,您将必须在要与Expo交互的终端上输入以下命令。
expo login
它将要求您输入世博帐户的用户名,密码。您可以查看下面的图像,以查看其在Visual Studio代码中的外观。
有关详细信息,请检查Github answer