当前位置: 首页 > article >正文

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

Flutter中使用了 permission_handler 插件。

Permission.notification.request()

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

解决办法:


  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 来获取权限结果,根本结果提示用户就行了。 


http://www.kler.cn/a/560627.html

相关文章:

  • SSE/Fetch API+Stream/WebSocket实时流式接收Node后端传来的处理过后的Coze API数据
  • (七)趣学设计模式 之 适配器模式!
  • DeepSeek 助力 Vue 开发:打造丝滑的滚动动画(Scroll Animations)
  • Python游戏编程之赛车游戏6-4
  • 关于<<DeepSeek-R1:通过强化学习激励大语言模型的推理能力>>的解读
  • Teigha(ODA<Open Design Alliance>_开放设计联盟)——cad c# 二次开发
  • 原生稀疏注意力NSA 替换transformer 注意力进行文本生成训练
  • 【开源免费】基于SpringBoot+Vue.JS物流管理系统(JAVA毕业设计)
  • 普通人使用生成式语言模型的几个阶段
  • javaweb-vue3基础
  • R Excel 文件:高效数据处理的利器
  • 在CentOS 7下部署NFS的详细教程
  • 一些时间方法
  • 如何保证bug在改完之后不会引起新bug
  • 如何通过阿里云CDN优化网站访问与下载速度?
  • 数据库-事务的ACID
  • Linux 系统内存不足导致服务崩溃的排查方法
  • TCP重传机制
  • 使用 Three.js 转换 GLSL 粒子效果着色器
  • 【C++设计模式】观察者模式(1/2):从基础到优化实现