Flutter集成Firebase推送:实现通知自动展开显示
实现Flutter通知默认展开显示的解决方案
你的核心问题在于用了MediaStyleInformation,这个样式是给媒体类通知(比如音频、视频播放)设计的,不适合普通文本通知的默认展开需求。要实现类似WhatsApp、Teams的通知自动展开效果,得替换成合适的样式配置,同时保证优先级参数正确。
解决步骤:
替换样式信息类型
把MediaStyleInformation换成BigTextStyleInformation——这是Android原生支持的大文本通知样式,能让通知默认以展开状态显示完整内容。确保参数正确传递
在BigTextStyleInformation里传入完整的消息内容作为bigText参数,同时保留高优先级和最高重要性的配置,保证通知能直接弹出并展开。
修改后的完整代码:
static Future showNotification(RemoteMessage message) async { AndroidNotificationDetails androidDetails = AndroidNotificationDetails( "default_notification_channel_id", "channel", enableLights: true, enableVibration: true, priority: Priority.high, importance: Importance.max, // 使用BigTextStyle实现默认展开 styleInformation: BigTextStyleInformation( message.data['body'], htmlFormatContent: true, htmlFormatTitle: true, title: message.data['title'], ), playSound: true, ); await _flutterLocalNotificationsPlugin.show( message.data.hashCode, message.data['title'], message.data['body'], NotificationDetails(android: androidDetails), ); }
额外说明:
- 如果要展示多条消息(类似聊天会话记录),可以改用
InboxStyleInformation,通过lines参数传入多条文本内容,同样会默认展开显示。 - 注意:Android通知渠道的重要性设置是一次性的,如果之前已经创建过
default_notification_channel_id渠道且重要性不是max,需要卸载应用重装,或者更换新的channelId重新创建渠道。
内容的提问来源于stack exchange,提问作者B.shruti
相关产品推荐
相关产品推荐

