请求许可通知Flutter



我正在尝试显示一个用于请求通知权限的弹出窗口。我尝试过使用permission_handler包,但对于通知和蓝牙,它不会显示任何对话框。是否有其他方式显示对话框以请求通知权限?

使用permission_handler包,以下代码将弹出一个对话框,请求用户获得通知权限:

Future<void> requestNotificationPermissions() async {
final PermissionStatus status = await Permission.notification.request();
if (status.isGranted) {
// Notification permissions granted
} else if (status.isDenied) {
// Notification permissions denied
} else if (status.isPermanentlyDenied) {
// Notification permissions permanently denied, open app settings
await openAppSettings();
}
}

您可以在主函数内部或任何您认为合适的地方调用该函数。

您可以使用notification_permission

我遇到了同样的问题,它没有显示弹出窗口。这是我的解决方案:

  • iOS:

Podfile中,对于需要使用的权限,我将值从0更改为1。例如:

...
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
# YOUR CUSTOM TARGET CODE HERE.
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
## dart: PermissionGroup.calendar
'PERMISSION_EVENTS=0',

## dart: PermissionGroup.notification
'PERMISSION_NOTIFICATIONS=1',
## dart: PermissionGroup.bluetooth
'PERMISSION_BLUETOOTH=1',
]
end
end
end
  • 安卓系统:

android -> app -> build.gradle中,我为targetSdkVersion设置了33。例如:

...
android {
...
defaultConfig {
...
minSdkVersion 21 // flutter.minSdkVersion
targetSdkVersion 33 // flutter.targetSdkVersion
...
}
...
}
...

希望这能有所帮助。

最新更新