如何使用Flutter结合Firebase实现点击APP按钮触发跨设备通知
你要的功能完全可以实现,既可以用纯本地方案实现,也可以通过集成Firebase完成,两种方案的实现逻辑如下:
方案1:纯本地实现(无需联网/第三方服务)
这个方案是满足你需求的最低成本方案,不需要接入任何外部服务,直接调用手机系统的本地通知能力即可。
- 依赖官方维护的
flutter_local_notifications库,按照库的要求完成安卓、iOS端的基础配置,包括通知权限申请、安卓通知通道创建、iOS通知能力开启等。 - 功能实现逻辑非常简单,给你的按钮绑定
onPressed点击回调,在回调内直接调用本地通知的展示方法,传入你预设的通知标题、内容即可,点击按钮后系统通知栏会立刻弹出对应通知。
核心实现代码示例:
// 先完成flutterLocalNotificationsPlugin的全局初始化,此处省略初始化代码 ElevatedButton( onPressed: () async { // 安卓端通知配置 const AndroidNotificationDetails androidDetails = AndroidNotificationDetails( 'custom_notify_channel_id', '自定义通知通道', importance: Importance.max, priority: Priority.high, ); const NotificationDetails totalDetails = NotificationDetails(android: androidDetails); // 弹出预设内容的通知 await flutterLocalNotificationsPlugin.show( 1, // 通知ID '预设通知标题', '这是你预设的通知内容', totalDetails, ); }, child: const Text('点击发送通知'), )
方案2:集成Firebase实现
如果你后续有服务端下发通知、跨设备发送通知的需求,可以通过Firebase的云消息传递(FCM)能力实现,完全满足你的要求。
- 首先在Flutter项目中集成
firebase_core和firebase_messaging库,完成Firebase项目和客户端的绑定,配置好安卓、iOS端的FCM相关权限和配置项,申请通知权限后即可使用。 - 要实现点击按钮触发通知,你可以先获取当前设备的FCM token,在按钮点击事件中调用FCM的发送接口,给当前设备的token推送一条预设内容的通知,设备接收到FCM消息后即可弹出通知展示。
注意:安卓从Android 13版本开始需要动态申请通知权限,iOS也需要用户主动同意接收通知,否则通知不会正常弹窗展示。
内容的提问来源于stack exchange,提问作者Jonas Jacob Biermann
相关产品推荐
相关产品推荐

