我已经创建了离子2应用程序,并使用ionic.io实现了推送通知,并且它正在工作。
我需要实现的下一件事是应用程序在单击通知时将如何响应,就像我发送有效载荷变量" <strong"> postid "具有value' 1234 '。<<<<'。/p>
现在有两种情况,当应用程序打开和关闭时:
1(当应用程序打开时,我想显示带有推送标题的弹出窗口和带有GO按钮的弹出窗口 - 单击它将输入详细信息页面。
2(收到通知时,单击它将打开应用程序,它将不会显示主页,并将使用 postid parameter直接转到详细信息页面。
我的代码:
this.push.rx.notification()
.subscribe((msg) => {
this.appCtrl.getRootNav().push(DetailsPage, {postid: 203146});
});
上述代码的问题:
1(当应用程序关闭时 - 它打开应用程序,但无所事事,但是当我删除参数 postid 时,它会导航到 deleteSpageSpage ,但没有使用参数。p> 2(当应用打开时,当应用程序打开时什么都不做,当应用程序打开时什么都不做。
请建议,谢谢!
这是我解决问题的代码。
现在它正在根据需要工作。如果有有效载荷,它将检查有效载荷,如果没有有效载荷,它将降落在主页上。如果应用程序打开,则将显示一个弹出框。
this.push.rx.notification()
.subscribe((msg) => {
let pushPayload = msg.payload;
if(pushPayload == undefined)
return;
if (msg.app.asleep || msg.app.closed) {
if(pushPayload['postid'] !== undefined) {
this.appCtrl.getRootNav().push(DetailPage, {id: msg.payload['postid']});
}
} else {
let confirm = this.alertCtrl.create({
title: msg.title,
message: msg.text,
buttons: [
{
text: 'Check Later',
handler: () => {
console.log('Disagree clicked');
}
},
{
text: 'Check Now',
handler: () => {
if(pushPayload['postid'] !== undefined) {
this.appCtrl.getRootNav().push(DetailPage, {id: msg.payload['postid']});
}
}
}
]
});
confirm.present();
}
});
希望它可以帮助某人。
谢谢