Не удается получить идентификатор пользователя OneSignal (cordova) - PullRequest
0 голосов
/ 17 апреля 2019

Не удается получить идентификатор пользователя OneSignal. Я получаю сообщение об ошибке "Не удается прочитать свойство OneSignal с неопределенным нулем"

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

1 Ответ

1 голос
/ 17 апреля 2019

Я не эксперт по кордове, но поиск в Google привел меня к этой проблеме на 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-

...