我在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);
});
我也注意到警报,同样的故事
答案 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);
});