处理IONIC 2推送通知

时间:2017-04-19 06:31:14

标签: ionic-framework ionic2

我创建了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)当应用程序打开时,不确定如何执行此操作,因为在应用程序打开时它什么也不做。

请建议,谢谢!!

1 个答案:

答案 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();
                }
            });

希望它可以帮助某人。

由于