wyy
wyy

Reputation: 545

Can't get OneSignal user id (cordova)

Can't get OneSignal user id. I get error "Cannot read property 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)
});

This one didn't work too:

window.plugins.OneSignal.getIds(function(ids) {
    console.log(ids);
});

Upvotes: 1

Views: 1467

Answers (1)

PsyGik
PsyGik

Reputation: 3675

I am not a cordova expert, but searching on Google led me to this issue on Github. This works when user has agreed to allow notifications if I'm not wrong.

Relevant code:

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)); })

Link to documentation: https://documentation.onesignal.com/docs/cordova-sdk#section--addsubscriptionobserver-

Upvotes: 3

Related Questions