[英]Flutter Notification not showing pop up
Notifications I send with Firebase when the app is open, in the background, and closed work fine.当应用程序打开、在后台和关闭时,我使用 Firebase 发送的通知工作正常。
But I want to pop up, like this:但我想弹出,像这样:
My codes;我的代码;
local_notification_service.dart: local_notification_service.dart:
class LocalNotificationService {
static final FlutterLocalNotificationsPlugin _notificationsPlugin =
FlutterLocalNotificationsPlugin();
static void initialize(BuildContext context) {
final InitializationSettings initializationSettings =
InitializationSettings(
android: AndroidInitializationSettings("@mipmap/launcher_icon"),
iOS: IOSInitializationSettings(
requestSoundPermission: false,
requestBadgePermission: false,
requestAlertPermission: false,
));
_notificationsPlugin.initialize(initializationSettings,
onSelectNotification: (String? route) async {
if (route != null) {
Navigator.of(context).pushNamed(route);
}
});
}
static void display(RemoteMessage message) async {
try {
final id = DateTime.now().millisecondsSinceEpoch ~/ 1000;
final NotificationDetails notificationDetails = NotificationDetails(
android: AndroidNotificationDetails(
"kasifkocaeli",
"kasifkocaeli channel",
channelDescription: "kasifkocaeli guzel",
importance: Importance.max,
priority: Priority.high,
));
await _notificationsPlugin.show(
id,
message.notification!.title,
message.notification!.body,
notificationDetails,
payload: message.data["route"],
);
} on Exception catch (e) {
print(e);
}
}
}
main.dart:主要.dart:
Future<void> backgroundHandler(RemoteMessage message) async{
print(message.data.toString());
print(message.notification!.title);
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FirebaseMessaging.onBackgroundMessage(backgroundHandler);
runApp(const MyApp());
}
choose_screen.dart:选择屏幕.dart:
class _ChoosePageState extends State<ChoosePage> {
@override
void initState() {
super.initState();
LocalNotificationService.initialize(context);
//Bildirime tıklandığında gösterilecek mesaj
FirebaseMessaging.instance.getInitialMessage().then((message) {
if (message != null) {
final routeFromMessage = message.data["route"];
Navigator.of(context).pushNamed(routeFromMessage);
}
});
//forground (uygulama önplandayken)
FirebaseMessaging.onMessage.listen((message) {
if (message.notification != null) {
print(message.notification!.body);
print(message.notification!.title);
}
LocalNotificationService.display(message);
});
//Uygulama arkaplandayken ve kullanıcı tıkladığında
FirebaseMessaging.onMessageOpenedApp.listen((message) {
final routeFromMessage = message.data["route"];
Navigator.of(context).pushNamed(routeFromMessage);
});
}
pubspec.yaml: pubspec.yaml:
firebase_messaging: ^11.2.13
flutter_local_notifications: ^9.4.0
firebase_core: ^1.13.1
cloud_firestore: ^3.1.10
AndroidManifest:安卓清单:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="notification_app"/>
And this is my watched video (he did the same with me but the notification screen opens on his app, but not for me. The scene where the notification is shown这是我观看的视频(他对我做了同样的事情,但通知屏幕在他的应用程序上打开,但不是为我打开的。显示通知的场景
You need to open settings and select notifications, go to your app and select open channel name at the bottom of the screen then tick allow floating notifications您需要打开设置和 select 通知,go 到您的应用程序和 select 打开屏幕底部的频道名称,然后勾选允许浮动通知
If you ran the app before setting the Importance to Max, it may have been cached without that.如果您在将 Importance 设置为 Max 之前运行该应用程序,则它可能在没有设置的情况下被缓存。 I had the same issue and had to wipe the data of the Android emulator and run it again, and then it worked.
我有同样的问题,不得不擦除 Android 模拟器的数据并再次运行它,然后它工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.