离子2和信号,如何将playerId保存到本地存储

时间:2017-12-04 08:31:16

标签: android ionic2 storage

我在ionic2中使用一个信号来执行推送通知,我已经测试了插件并且它工作正常,但我想通过从我的应用服务器发送通知更进一步。因此我需要玩家ID,我跟踪互联网上的文档,我能够将playerId显示为警报,但我想将其存储在本地存储中。这是挑战

下面是我的代码

 platform.ready().then(() => {
      statusBar.styleDefault();
      splashScreen.hide();

      window["plugins"].OneSignal.getIds(function(ids) {

        alert(JSON.stringify(ids.userId));

        this.storage.set('playersID',  ids.userId);

    });

      // OneSignal Code start:
      // Enable to debug issues:
      // window["plugins"].OneSignal.setLogLevel({logLevel: 4, visualLevel: 4});
      this._OneSignal.startInit("568ed291-8d30-441f-b7be-d0d99aaca596", '342271570971');

      this._OneSignal.inFocusDisplaying(this._OneSignal.OSInFocusDisplayOption.Notification);
      this._OneSignal.setSubscription(true);

      this._OneSignal.handleNotificationReceived().subscribe(() => {
        // handle received here how you wish.
      });
      this._OneSignal.handleNotificationOpened().subscribe(() => {
        // handle opened here how you wish.
      });
      this._OneSignal.endInit();    




    })    



    }
  } 

我甚至尝试使用以下代码无效

    window["plugins"].OneSignal.getIds(function(ids) {
      alert(JSON.stringify(ids));

       window.localStorage.setItem('playerID',  ids.userId);

  });

我也注意到警报,同样的故事

1 个答案:

答案 0 :(得分:0)

你需要在init 之后保存它。在初始化之前你不会得到id。 this._Onesignal.getIds()也会返回带有ids的承诺。它没有参数。

this._OneSignal.startInit("568ed291-8d30-441f-b7be-d0d99aaca596", '342271570971');
this._OneSignal.inFocusDisplaying(this._OneSignal.OSInFocusDisplayOption.Notification);

this._OneSignal.getIds().then(ids => { //here 

        alert(JSON.stringify(ids.userId));

        this.storage.set('playersID',  ids.userId);

});