Hi,
So this was working fine and after and Ionic 3 version update, I’m getting the below error,
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'OneSignal' of undefined
I have the below in my index.html,
<!-- un-comment this code to enable web push -->
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async='async'></script>
<script>
var OneSignal = window.OneSignal || [];
</script>
<!-- -->
and then I init it as below to try to obtain my playerId.
initWebPush()
{
var that = this;
this.OneSignal = window["OneSignal"];
this.oneSignalId = "";
this.OneSignal.push(["init", {
appId: "xxxxxxx-xxxx-xxxxxx-xxxxxxx",
autoRegister: true,
httpPermissionRequest: {
enable: true
},
welcomeNotification: {
disable: true
},
notifyButton: {
enable: false
},
promptOptions: {
siteName: 'Push Notifications',
actionMessage: "Please Allow Push Notifications.",
exampleNotificationTitle: 'Holiday Approved',
exampleNotificationMessage: 'Your holiday request was approved.',
exampleNotificationCaption: 'You can unsubscribe at anytime.',
acceptButtonText: "ALLOW",
cancelButtonText: "NO THANKS"
}
}]);
this.OneSignal.push(function () {
this.OneSignal.isPushNotificationsEnabled(function (isEnabled) {
if (!isEnabled) {
this.OneSignal.push(function () {
this.OneSignal.registerForPushNotifications({
modalPrompt: true
});
});
}
else {
this.OneSignal.push(function () {
this.OneSignal.getUserId().then(function (userId) {
that.oneSignalId = userId;
});
});
}
});
});
this.OneSignal.push(function () {
this.OneSignal.on('subscriptionChange', function (isSubscribed) {
if (isSubscribed) {
this.OneSignal.getUserId().then(function (userId) {
that.oneSignalId = userId;
});
}
else {
that.oneSignalId = "";
}
});
});
this.OneSignal.on('notificationDisplay', function (event) {
that.notificationDisplayed(event);
});
}
The modal dialog still appears allowing me to enable notifications but it fails to get the User Id.
Any help appreciated.
Thanks.