Làm cách nào để điều hướng đến trang bằng cách sử dụng sự kiện theo thẻ firebase

lập trình


CHÀO,
Tôi đang cố gắng điều hướng đến trang cụ thể trong sự kiện tabb thông báo firebase, mọi thứ đều chạy ổn ngoại trừ việc điều hướng đến trang cụ thể, sự kiện đang kích hoạt nhưng không điều hướng, tôi có thể khắc phục bằng cách nào. sẽ đánh giá cao sâu sắc.
Trân trọng,

Những gì tôi đã thử:

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);
    }

}

Giải pháp 1

Chào bạn!

Trong tệp App.xaml.cs của bạn, sau khi Khởi tạoComponent() đặt hành động:

CrossFirebaseCloudMessaging.Current.NotificationTapped += Current_NotificationTapped;

Và sau đó tạo hàm:

void riêng tư Current_NotificationTapped(người gửi đối tượng, FCMNotificationTappedEventArgs e)
{
thử
{
var data = e.Notification.Data;
MainPage = new DetailsPage();

}
bắt (Ngoại lệ cũ)
{
System.Diagnostics.Debug.WriteLine(“Ngoại lệ:>>” + ex);
}
}

コメント

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