OneSignal / OneSignal-Cordova-SDK

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your Ionic, PhoneGap CLI, PhoneGap Build, Cordova, or Sencha Touch app with OneSignal. Supports Android, iOS, and Amazon's Fire OS platforms. https://onesignal.com
Other
250 stars 197 forks source link

[Bug]: hasPermission() always initially returns false #925

Closed terreng closed 3 weeks ago

terreng commented 11 months ago

What happened?

window.plugins.OneSignal.Notifications.hasPermission() always returns false when called immediately within the Cordova deviceready event, even if permission has been granted. This method may need to be made a promise.

Steps to reproduce?

Observe that this code logs `false` even if permission is granted.

document.addEventListener("deviceready", function() {
  console.log(window.plugins.OneSignal.Notifications.hasPermission())
});

If you put this inside a short setTimeout then it returns the expected value (true if granted).

What did you expect to happen?

It should return true if permission has been granted.

OneSignal Cordova SDK version

5.0.1

Which platform(s) are affected?

Relevant log output

No response

Code of Conduct

jennantilla commented 9 months ago

Hello @terreng thank you so much for your patience. We're investigating this and will get back to you as soon as possible.

kpturner commented 8 months ago

Update?

aledebla03 commented 6 months ago

same here

jennantilla commented 3 weeks ago

Apologies that we missed updating this ticket! This issue should now be resolved by using the new method, getPermissionAsync. Please see our Migration Guide for more details. hasPermission is now deprecated.

Let us know if you have any questions or concerns!