[ad_1]
こんにちは、
Firebase notification tabbイベントで特定のページに移動しようとしています。特定のページに移動することを除いてすべてが正常に実行されています。イベントはトリガーされていますが、移動しません。どうすれば修正できますか。 深く感謝するでしょう。
よろしく、
私が試したこと:
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); } }
解決策 1
こんにちは!
ファイル App.xaml.cs で、InitializeComponent() の後にアクションを設定します。
CrossFirebaseCloudMessaging.Current.NotificationTapped += Current_NotificationTapped;
そして後で関数を作成します。
private void Current_NotificationTapped(オブジェクト送信者、FCMNotificationTappedEventArgs e)
{
試す
{
var データ = e.Notification.Data;
MainPage = 新しいDetailsPage();
}
catch (例外例)
{
System.Diagnostics.Debug.WriteLine(“例外:>>” + ex);
}
}
[ad_2]
コメント