gpt4 book ai didi

Flutter - 无法设置通知大图标

转载 作者:行者123 更新时间:2023-12-05 01:07:28 25 4
gpt4 key购买 nike

我正在使用:flutter_local_notifications:^5.0.0+3

我正在显示这样的通知,一切正常。自定义图标也可以使用。但是我正在尝试设置一个大图标,但它只是没有显示。这是没有任何大图标的通知屏幕截图:

更新 - 当我锁定手机时显示,并且通知显示在锁定屏幕上。但是,当它在屏幕上弹出时,它不显示。此外,当我向下滑动并查看列表中的所有通知时,它不会显示。仅在锁定屏幕上。为什么会这样?

No icon

这是我的代码:

class _MyAppState extends State<MyApp> {

FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin;

FirebaseMessaging messaging = FirebaseMessaging.instance;

@override
void initState() {
notificationPermission();
initMessaging();

subscribeToTopic('test');

createChannel();


super.initState();
}

// users unique token
void getToken() async {
print(await messaging.getToken());
}


@override
Widget build(BuildContext context) {



getToken();
// showNotification();

return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(

primarySwatch: Colors.blue,
),
home: Scaffold(

appBar: AppBar(title: Text('AppBar Demo')),



),
);
}




void notificationPermission() async {

NotificationSettings settings = await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);

print('User granted permission: ${settings.authorizationStatus}');
}

void initMessaging(){

// for notifications:
var androidInit = AndroidInitializationSettings('my_icon'); // make sure this is in drawable folder in android

var iosInit = IOSInitializationSettings();
var initSetting = InitializationSettings(android: androidInit, iOS: iosInit);
flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
flutterLocalNotificationsPlugin.initialize(initSetting);

// Set up listener

FirebaseMessaging.onMessage.listen((RemoteMessage message) {
print('Got a message whilst in the foreground!');
print('Message data: ${message.data}');

showNotification(message.data['title'], message.data['body']);

if (message.notification != null) {
print('Message also contained a notification title: ${message.notification.title}');
print('Message also contained a notification body: ${message.notification.body}');
}
});

}

void showNotification(String title, String body) async {

var androidDetails = AndroidNotificationDetails(
'91512',
'channelName',
'channelDescription',
importance: Importance.max,
priority: Priority.high,
visibility: NotificationVisibility.public,
ticker: 'ticker',
largeIcon: const DrawableResourceAndroidBitmap('my_icon'),

);

var iosDetails = IOSNotificationDetails();

var generalNotificationDetails = NotificationDetails(android: androidDetails, iOS: iosDetails);

await flutterLocalNotificationsPlugin.show(0, title, body, generalNotificationDetails, payload: 'Notification');


}

void subscribeToTopic(String topicName) async {
await FirebaseMessaging.instance.subscribeToTopic(topicName).whenComplete(() =>
{
print('Sucessfully subscribed to topic: $topicName')
});
}

void unsubscribeToTopic(String topicName) async {
await FirebaseMessaging.instance.unsubscribeFromTopic(topicName);
}

Future<void> createChannel() async {

// create channel:
var androidNotificationChannel = AndroidNotificationChannel(
'91512', // channel ID
'Your Channel name', // channel name
'Your Channel description', //channel description
importance: Importance.high,

);
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<
AndroidFlutterLocalNotificationsPlugin>()
?.createNotificationChannel(androidNotificationChannel);

}


}

最佳答案

我想你是在找AndroidNotificationDetails,给你举个例子:

AndroidNotificationDetails(
channel.id,
channel.name,
channel.description,
channelShowBadge: true,
icon: '@mipmap/ic_icon',
largeIcon: DrawableResourceAndroidBitmap('@mipmap/ic_largeIcon'),
),

正如您在通知解剖中看到的那样,不建议在 largeIcon 属性中设置应用程序图标:

Android Notification anatomy

使用 largeIcon 的正确方法是在发送通知时在通知负载中使用 image 属性:

const payload = {
notification: {
title: 'title',
body: 'description',
image: 'link-to-your-large-image',
sound : "default",
badge: "1"
},
};

Android Notifications

关于Flutter - 无法设置通知大图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67424371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com