shouldShowRationaleToRequest method
- String? channelKey,
- List<
NotificationPermission> permissions = const [NotificationPermission.Badge, NotificationPermission.Alert, NotificationPermission.Sound, NotificationPermission.Vibration, NotificationPermission.Light],
Checks whether the app should show a rationale to the user before requesting notification permissions.
The optional channelKey
parameter is a String that represents the key
of the notification channel for which to check permissions. If this
parameter is omitted, permissions will be checked for all channels.
The optional permissions
parameter is a list of
NotificationPermission values to check. This parameter is optional and
defaults to a list of permissions that are commonly requested by apps,
including NotificationPermission.Alert, NotificationPermission.Sound,
NotificationPermission.Badge, NotificationPermission.Vibration, and
NotificationPermission.Light.
This method returns a Future that resolves to a list of NotificationPermission values indicating which permissions require user intervention in order to be granted. If a permission requires user intervention, it will be included in the list. If a permission does not require user intervention, it will not be included in the list. If no permissions require user intervention, the list will be empty.
This method can be used to check whether the app should show a rationale to the user before requesting notification permissions. If any permissions require user intervention, the app should show a rationale to the user explaining why the permission is needed before requesting it.
Implementation
@override
Future<List<NotificationPermission>> shouldShowRationaleToRequest(
{String? channelKey,
List<NotificationPermission> permissions = const [
NotificationPermission.Badge,
NotificationPermission.Alert,
NotificationPermission.Sound,
NotificationPermission.Vibration,
NotificationPermission.Light
]}) async {
List<Object?> permissionList = _listPermissionToListString(permissions);
permissionList = await methodChannel.invokeMethod(
CHANNEL_METHOD_SHOULD_SHOW_RATIONALE, {
NOTIFICATION_CHANNEL_KEY: channelKey,
NOTIFICATION_PERMISSIONS: permissionList
});
return _listStringToListPermission(permissionList);
}