我有一些奇怪的问题...我正在我的 Ionic 应用程序中使用推送通知进行消息传递,但它不时工作......我的代码是:
public initPushNotification() {
if (!this.platform.is('cordova')) {
console.warn('Cordova is not available - Run in physical device. Push notifications not initialized.');
return;
}
let zone = new NgZone({ enableLongStackTrace: false });
zone.run(() => {
this.Push.hasPermission().then((res: any) => {
if (res.isEnabled) {
const options: PushOptions = {
android: {
senderID: GOOGLE_FCM_ID
}
};
let push_object = this.Push.init(options);
push_object.on('registration').subscribe((data: any) => {
this.APIRequest.post('/messages/register-fcm-token', data).subscribe(response => {
console.log(response)
}, err => {
console.log(err)
})
console.log('push.registration', data);
});
push_object.on('notification').subscribe((data: any) => {
console.log('push.notification', data);
this.events.publish('messages:push', data.message);
});
push_object.on('error').subscribe(error => console.error('Error with Push plugin', error));
} else {
alert('We do not have permission to send push notifications');
}
});
});
}
它位于app.component.ts
。
一些行为:
- 当应用程序在手机上最小化时
Cat S60
工作正常 - 有时,当应用程序在某些廉价
Huawei
上最小化时会起作用 - 当应用程序按原样打开时,一段时间在两台设备上都有效。在大多数情况下,不会。
当我将其发送给Google时,我会收到OK
状态。
您可以使用一个信号进行通知。它既快速又有效。您可以从下面的链接获取详细信息。
https://documentation.onesignal.com/v3.0/docs/cordova-sdk-setup
https://www.npmjs.com/package/onesignal-cordova-plug
http://www.plugreg.com/plugin/one-signal/onesignal-cordova-sdk