我正在尝试显示一个用于请求通知权限的弹出窗口。我尝试过使用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
...
}
...
}
...
希望这能有所帮助。