我swPush
在我的角度项目中使用。在这种情况下,this.swPush.requestSubscription()
通过单击按钮调用事件。
例如:
这getdeviceToken
将调用
getDeviceToken(): Promise<any> {
console.log('getting device token')
return new Promise(async (resolve, reject) => {
if (this.swPush.isEnabled) {
console.log('before subscription')
let sub = await this.swPush.requestSubscription({
serverPublicKey: this.VAPID_PUBLIC_KEY
})
console.log('temp --------', sub)
if(sub) {
this.device_token = sub;
if(sub) {
console.log('if sub')
resolve(this.device_token);
}else{
console.log('else sub')
reject({ message: "Error getting device id"});
}
} else{
reject({ message: "Error getting device id"});
}
} else{
console.log('sw is not enabled');
reject({ message: "Error getting device id"});
}
}
硬重新加载后,当我第一次单击按钮时,它卡在了
console.log('before subscription')
并且什么也不返回。它使我的应用程序无法使用,因为该函数没有返回任何内容,甚至没有返回错误。所以我无法前进。
但是,当我进行简单的重新加载并再次单击该按钮时,它会起作用并向this.swPush.requestSubscription()
我返回一个承诺,因此我的应用程序正在向前发展。任何人都知道为什么它第一次不起作用?或任何改善这一点的建议。