我创建了IONIC 2 App并使用ionic.io实现了PUSH通知,它正在运行。
我需要实现的另一件事是App会如何响应点击通知,就像我发送的有效负载变量“ postid ”一样,值为“ 1234 ”。< / p>
现在有两种情况是App打开和关闭时:
1)当应用程序打开时,我想显示带有推送标题的弹出窗口和带有go按钮的消息 - 单击它将进入详细信息页面。
2)收到通知后,单击它将打开应用程序,它将不会显示主页,并将直接转到带有 postid 参数的详细信息页面。
我的代码:
this.push.rx.notification()
.subscribe((msg) => {
this.appCtrl.getRootNav().push(DetailsPage, {postid: 203146});
});
上述代码的问题:
1)当应用程序关闭时 - 它会打开应用程序但什么都不做,但是当我删除参数 postid 时,它会导航到 DetailsPage ,但不会使用参数。
2)当应用程序打开时,不确定如何执行此操作,因为在应用程序打开时它什么也不做。
请建议,谢谢!!
答案 0 :(得分:0)
以下是解决我问题的代码。
现在它正在按预期工作。如果有有效载荷,它将检查有效载荷,如果没有,它将降落在主页。如果App已打开,则会显示一个弹出框。
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();
}
});
希望它可以帮助某人。
由于