【解決方法】Firebaseのタブ付きイベントを使用してページに移動するにはどうすればよいですか

[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]

コメント

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