2

我在我的 Flutter 应用程序中添加了 FCM,它可以工作,但我找不到用不同语言发送通知的方法。

我看到您可以在发送新通知时在 Firebase 控制台上设置语言条件,但我不太确定它是如何工作的。我想知道是否需要在我的代码中添加一些东西以使其工作。

这是我的代码:

push_notification_service.dart

import 'package:firebase_messaging/firebase_messaging.dart';

enum AppState {
    foreground,
    background,
    terminated,
}

class PushNotificationsManager {
    PushNotificationsManager._();

    factory PushNotificationsManager() => _instance;

    static final PushNotificationsManager _instance = PushNotificationsManager._();


    Future<void> init() async {
        await _setFCMToken();
        _configure();
    }

    _setFCMToken() async {
        FirebaseMessaging messaging = FirebaseMessaging.instance;

        NotificationSettings settings = await messaging.requestPermission(
            alert: true,
            badge: true,
            sound: true,
        );

        if (settings.authorizationStatus == AuthorizationStatus.authorized) {
            String? token = await messaging.getToken();
            print('FirebaseMessaging token: $token');
        }
    }

    void _configure() async {

    await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
        alert: true,
        badge: true,
        sound: true,
    );

    FirebaseMessaging.onMessage.listen((RemoteMessage message) {
        _showForegroundNotificationInAndroid(message);
    });

    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {
        _handleNotification(message: message.data, appState: AppState.foreground);
    });

    RemoteMessage? initialMessage = await FirebaseMessaging.instance.getInitialMessage();

    if (initialMessage != null) {
        _handleNotification(message: initialMessage.data, appState: AppState.terminated);
    }
}

    void _showForegroundNotificationInAndroid(RemoteMessage message) async {}

    void _handleNotification({
        Map<String, dynamic>? message,
        AppState? appState,
    }) async {
        print('PushNotificationsManager: _handleNotification ${message.toString()} ${appState.toString()}');
    }
}

在 main.dart 我有:

initState(){
    super.initState();
    PushNotificationsManager().init();
}

我需要使用 flutter_analytics 包吗?

4

0 回答 0