Flutter使用permission_handler请求通知权限不会弹出权限弹窗

Flutter中使用了 permission_handler 插件。

Dart 复制代码
Permission.notification.request()

这样调用,来请求通知权限,怎么弄都不会弹出来权限弹窗。在iOS端上都是正常的。

解决办法:

Dart 复制代码
  Future<void> sendTestNotification() async {
    FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
    FlutterLocalNotificationsPlugin();

    const AndroidInitializationSettings initializationSettingsAndroid =
    AndroidInitializationSettings('@mipmap/ic_launcher');

    const InitializationSettings initializationSettings = InitializationSettings(
      android: initializationSettingsAndroid,
    );

    await flutterLocalNotificationsPlugin.initialize(initializationSettings);

    const AndroidNotificationDetails androidPlatformChannelSpecifics =
    AndroidNotificationDetails('test_channel', 'Test Notifications',
        importance: Importance.min, priority: Priority.min, playSound: false);

    const NotificationDetails platformChannelSpecifics =
    NotificationDetails(android: androidPlatformChannelSpecifics);

    await flutterLocalNotificationsPlugin.show(
        0, '静默发送通知', '这是一条开启权限的静默通知消息', platformChannelSpecifics);
  }

在调用 Permission.notification.request() 之前,如上代码所示,发送一条静默消息,就可以调起权限弹窗。 这样就解决了。

另外,不只是通知权限, 其他的权限申请,在Flutter上面,最好的做法是先执行再说,比如拍照,应该先直接去调用拍照的API,这样系统就弹出了权限弹框,而不是先调用 .request(),这样不太好,如果申请不到权限,后面的就不执行了。

可以把permission_handler调用放在拍照的后面,比如拍照的时候调用拍照API,用户没有允许拍照权限,那API会报错,这个时候再去调用 permission_handler 来获取权限结果,根本结果提示用户就行了。

相关推荐
m0_738185829 分钟前
Flutter 鸿蒙化实战:just_audio 适配 OpenHarmony,功能强大的播放器
flutter·华为·harmonyos·鸿蒙
传奇开心果编程13 小时前
【现代声明式UI学与练】第7课 组件通信——父传子、子传父、跨层级通信、状态提升与 Context
学习·flutter·react native·ui·swiftui·android jetpack
律宏阔14 小时前
Flutter 列表图片内存优化:CachedNetworkImage 与 ClipRRect 的取舍
前端·flutter
律宏阔14 小时前
Dart 3 Record:解决 Future.wait 异构返回值的类型问题
前端·flutter
伯伯熊勞16 小时前
GetX 巢狀路由教學:用三層 Navigator 做桌面多欄佈局
flutter
传奇开心果编程21 小时前
【现代声明式UI学与练】第9课 性能优化——渲染优化、列表优化、内存优化、启动优化
学习·flutter·react native·ui·性能优化·swiftui·android jetpack
m0_738185821 天前
Flutter 鸿蒙化实战:foundation_fluttify 适配 OpenHarmony,Fluttify 桥接层
flutter·华为·harmonyos·鸿蒙
m0_738185821 天前
Flutter 鸿蒙化实战:http_proxy 适配 OpenHarmony,HTTP 代理
flutter·http·华为·harmonyos·鸿蒙
m0_738185821 天前
Flutter 鸿蒙化实战:headset_connection_event 适配 OpenHarmony,耳机插拔监听
flutter·华为·harmonyos·鸿蒙
恋猫de小郭2 天前
Android CLI 支持 AI Agent 通过 Device Streaming 调试云真机
android·前端·flutter