Comment accéder à la page à l’aide de l’événement à onglets Firebase

la programmation


Salut,
J’essaie de naviguer vers une page particulière lors de l’événement Tabb de notification Firebase, tout fonctionne correctement, sauf la navigation vers une page spécifique, l’événement se déclenche mais ne navigue pas, comment puis-je le réparer. apprécierai profondément.
Salutations,

Ce que j’ai essayé :

C#
using Microsoft.Maui.LifecycleEvents;
using Plugin.Firebase.Auth;
using Plugin.Firebase.Bundled.Shared;
using Plugin.Firebase.Crashlytics;
using CommunityToolkit.Maui;
using CommunityToolkit.Maui.Storage;
using Plugin.Firebase.CloudMessaging;
#if IOS
using Plugin.Firebase.Bundled.Platforms.iOS;
#else
using Plugin.Firebase.Bundled.Platforms.Android;
#endif
using Microsoft.Extensions.Logging;
//using Plugin.MauiMTAdmob;

namespace LatestMobilePrices;

public static class MauiProgram
{
	public static MauiApp CreateMauiApp()
	{
		var builder = MauiApp.CreateBuilder();
		builder
			.UseMauiApp<App>()
            .UseMauiCommunityToolkit()
                        .RegisterFirebaseServices()
                        //.UseMauiMTAdmob()
            .ConfigureFonts(fonts =>
			{
				fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
				fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
			});

#if DEBUG
		builder.Logging.AddDebug();
#endif
        builder.Services.AddSingleton<IFileSaver>(FileSaver.Default);
        builder.Services.AddTransient<savepage>();

        return builder.Build();
	}

    private static MauiAppBuilder RegisterFirebaseServices(this MauiAppBuilder builder)
    {
        builder.ConfigureLifecycleEvents(events => {
#if IOS
            events.AddiOS(iOS => iOS.FinishedLaunching((app, launchOptions) => {
                CrossFirebase.Initialize(CreateCrossFirebaseSettings());
                CrossFirebaseCrashlytics.Current.SetCrashlyticsCollectionEnabled(true);
                return false;
            }));
#else
            events.AddAndroid(android => android.OnCreate((activity, _) =>
                CrossFirebase.Initialize(activity, CreateCrossFirebaseSettings())));
                CrossFirebaseCrashlytics.Current.SetCrashlyticsCollectionEnabled(true);
                CrossFirebaseCloudMessaging.Current.NotificationTapped+=(sender,e)=>
                {
                System.Diagnostics.Debug.WriteLine("tabbed");

                    Shell.Current.GoToAsync(nameof(savepage));
                };
#endif
        });

        builder.Services.AddSingleton(_ => CrossFirebaseAuth.Current);
        return builder;
    }

    private static CrossFirebaseSettings CreateCrossFirebaseSettings()
    {
        return new CrossFirebaseSettings(
            isAuthEnabled: true,
            isCloudMessagingEnabled: true,
            isAnalyticsEnabled: true);
    }

}

Solution 1

Salut mon ami!

Dans votre fichier App.xaml.cs, après InitializeComponent(), définissez l’action :

CrossFirebaseCloudMessaging.Current.NotificationTapped += Current_NotificationTapped ;

Et plus tard, créez la fonction :

private void Current_NotificationTapped (expéditeur de l’objet, FCMNotificationTappedEventArgs e)
{
essayer
{
var data = e.Notification.Data;
MainPage = new DétailsPage();

}
attraper (Exception ex)
{
System.Diagnostics.Debug.WriteLine(“Exception :>>” + ex);
}
}

コメント

タイトルとURLをコピーしました