尝试让我的推送通知在iOS上工作,从我自己的iOS设备开始
我可以在Angular中找到我的令牌,将其发送到我的python后端,并将其存储在数据库中。
如果我转到撰写firebase中的通知:https://console.firebase.google.com/project//notification/compose我可以创建活动并在手机上收到通知。但是,如果我点击"发送测试消息",请从数据库中输入(或检查(我的FCM令牌,然后点击"测试"。没有结果。
因此,我怀疑我接收令牌的方法/令牌是否正确。
我正在使用Angular,在我的服务中我打电话给:
PushNotifications.addListener('registration', (token: Token) => {
console.log('Push registration success, token: ' + token.value);
this.tokenvalue = token.value
this.LogOn(username, password, this.tokenvalue)
}); }
它是我登录表单的一部分,每次有人登录时,都会检索到令牌,以防它在那里:
import { PushNotifications, Token } from '@capacitor/push-notifications';
import { Capacitor } from '@capacitor/core';
(....)
onSubmit(): void {
const { username, password } = this.form;
const isPushNotificationsAvailable = Capacitor.isPluginAvailable('PushNotifications');
if (isPushNotificationsAvailable) {
PushNotifications.requestPermissions().then(result => {
if (result.receive === 'granted') {
// Register with Apple / Google to receive push via APNS/FCM
PushNotifications.register();
} else {
this.tokenvalue = ""
this.LogOn(username, password, this.tokenvalue)
}
});
PushNotifications.addListener('registration', (token: Token) => {
console.log('Push registration success, token: ' + token.value);
this.tokenvalue = token.value
this.LogOn(username, password, this.tokenvalue)
}); }
else {
this.tokenvalue = ""
this.LogOn(username, password, this.tokenvalue)
}
}
我现在尝试的实际代币是这样的:
5ba1427198d463847………….80585EAFC3C2670226E22C082A
这20个点也代表了与周围其他点一样的实际字符。总共64个字符。
希望你能帮我,我是不是做错了什么?我错过某个地方的布景了吗?
通过阅读本文最终修复了它:https://capacitorjs.com/docs/guides/push-notifications-firebase
我已经执行了很多步骤,但错过了Xcode中可用文件的一些更改。这将角度应用程序中打印的实际ID更改为如下所示:
dz0yFZnpH0DkvTntwzrlx-:APA91bG。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。JYuH0-7yGReyaqQQyRmObSa0Cld9QxEHYW9jSaZQV0jNQjDHRSx
一个164个字符的令牌,现在在添加问题中描述的测试消息时起作用。此外,python部分与此完美结合。使用了这个:https://medium.com/@smbhuin/push-notification-forbase-python-8a65c47d3020
值得注意的是,Angular本身根本不需要任何更改。
很高兴有这个-对我来说-艰巨的挑战在我身后