mirzemehdi / KMPNotifier

Kotlin Multiplatform Push Notification Library targetting android, iOS, Desktop and Web (JS and Wasm)
http://mirzemehdi.com/KMPNotifier/
Apache License 2.0
300 stars 16 forks source link

Ios asking notification permission optioanal at start and exposing permissonUtil #27

Closed mirzemehdi closed 5 months ago

mirzemehdi commented 5 months ago

Solves this issue: https://github.com/mirzemehdi/KMPNotifier/issues/22

mirzemehdi commented 5 months ago

By default in IOS, notification permission will be asked when application starts. But if you want to handle permission yourself whenever you want, then when initializing library you can pass askNotificationPermissionOnStart value as false in IOS configuration.

Ios initalization

NotifierManager.initialize(
  configuration = NotificationPlatformConfiguration.Ios(
    askNotificationPermissionOnStart = false, //Default value is true
  )
)
mirzemehdi commented 5 months ago

Also, PermissionUtil class is exposed in commonMain, that you can use as an utility class for asking permission or checking notification permission for ios. You can get it using

val permissionUtil = NotifierManager.getPermissionUtil()
permissionUtil.askNotificationPermission()

However, In Android this function is just a mock. You need to ask permission in Android activity using like below:

val permissionUtil by permissionUtil()
permissionUtil.askNotificationPermission()

⚠️Warning: PermissionUtil is exposed as an experimental as this library doesn't focus around permissions!. It is there just for making things easier if needed