无法获取OneSignal用户ID。我收到错误“无法读取属性OneSignal of undefined null”
window.plugins.OneSignal
.startInit(OneSingalID)
.handleNotificationReceived(function (jsonData) {
setTimeout(function () {
removeNotications();
}, 1000 * 60); // 1 min.
})
.handleNotificationOpened(notificationOpenedCallback)
.inFocusDisplaying(window.plugins.OneSignal.OSInFocusDisplayOption.None)
.endInit();
window.plugins.OneSignal.getUserId(function (id) { // <- error
console.log(id)
});
这个也不起作用:
window.plugins.OneSignal.getIds(function(ids) {
console.log(ids);
});
我不是科尔多瓦专家,但在Google上搜索引导我去this issue on Github。如果用户同意允许通知,如果我没有错,则此方法有效。
相关代码:
let me = this; window["plugins"].OneSignal .startInit("XXXXXXXXX", "XXXXXXX") .handleNotificationOpened(notificationOpenedCallback).endInit();
window["plugins"].OneSignal.addSubscriptionObserver(function (state) { if (!state.from.subscribed && state.to.subscribed) { me.showAlertDialog('userId',state.to.userId); } me.showAlertDialog('state',JSON.stringify(state)); })
链接到文档:https://documentation.onesignal.com/docs/cordova-sdk#section--addsubscriptionobserver-