Xamarin IOS推送通知导航到页面

kqlmhetl  于 2023-08-01  发布在  iOS
关注(0)|答案(1)|浏览(117)

我有推送通知工作得很好。在Android上,当用户点击通知并启动应用程序时,我可以导航到所需的页面。我不知道如何在iOS上做同样的事情。我相信这是非常标准的,但找不到任何文档。这是一个Shell App。我看到一些导航页面的例子,我已经尝试过,等价的似乎不起作用。见下文

我尝试过的事情:

1.在Android上,当应用程序启动时,它会在MainActivity中重新运行OnCreate,因此我可以将相关信息传递给应用程序并根据需要进行导航。在IOS上,当应用程序从正在单击的通知中弹出时,FinishedLaunching永远不会被调用,因此这不是一个选项。
1.在通知处理程序DidReceiveRemoteNotification中,我尝试运行Shell.Current.GoToAsync($"{nameof(EventsPage)}");,这似乎没有效果。
1.我试过留言中心。所以在我的通知处理程序MessagingCenter.Send<object>(this, "Hi");中。然后在

public App()
{
     InitializeComponent();
     MainPage = new AppShell();
     MessagingCenter.Subscribe<object>(this, "Hi", (obj) =>
     {
           Shell.Current.GoToAsync($"{nameof(EventsPage)}");
     });
}

字符串
这样可以正常触发,GoToAsync也会触发,但没有任何效果。
1.我尝试将订阅移动到AppShell构造函数的末尾。但它从来没有在那里开火。
有人能给我举个例子吗?当用户在Xamarin IOS中单击后台通知时,通常如何导航到shell页面?或者告诉我我做错了什么?谢谢你!

ui7jx7zq

ui7jx7zq1#

对于IOS,您需要指定一个新的选项卡或堆栈或“//”所指的任何内容。$"//{nameof(EventsPage)}”);

public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
{
    
    Shell.Current.GoToAsync($"//{nameof(EventsPage)}");
    completionHandler(UIBackgroundFetchResult.NewData);
}

字符串

相关问题