[ad_1]
Hola,
Estoy tratando de navegar a una página particular en el evento de la pestaña de notificación de Firebase, todo funciona bien excepto navegar a una página específica, el evento se activa pero no navega, ¿cómo puedo solucionarlo? Lo apreciaremos profundamente.
Saludos,
Lo que he probado:
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); } }
Solución 1
¡Hola amigo!
En su archivo App.xaml.cs, después de InitializeComponent() configure la acción:
CrossFirebaseCloudMessaging.Current.NotificationTapped += Current_NotificationTapped;
Y luego crea la función:
vacío privado Current_NotificationTapped (remitente del objeto, FCMNotificationTappedEventArgs e)
{
intentar
{
var datos = e.Notificación.Datos;
Página principal = nueva página de detalles();
}
captura (Excepción ex)
{
System.Diagnostics.Debug.WriteLine(“Excepción: >>” + ex);
}
}
[ad_2]
コメント