如何识别用户在 .NET MAUI shell 应用程序中所在的页面?
为了提供更多背景信息,这就是我想要做的:
我的 .NET MAUI 应用程序(使用 Shell)有相当多的页面,其中一些在
AppShell.xaml
中定义为选项卡页面。其中一个页面使用 SignalR
提供实时聊天功能。
我试图让体验尽可能类似于 iOS 和 Android 中的内置聊天功能,其中:
我使用 Azure 通知中心服务来处理第三个/最后一个场景,但对于我处理前两个场景,我需要知道用户所在的页面,以便我可以确定要使用的音频通知。
我有一个
ChatService
,其中包含所有用于处理发送/接收消息的 SignalR
代码。在 MessageReceived()
方法中,我需要确定用户的页面。因此,此代码不会在页面代码后面或视图模型中运行,而是在服务类中运行,这就是为什么我需要一种更通用的方法来确定用户在我的应用程序中的当前“位置”。
当您使用 shell 时,您可以获得当前页面,如下所示:
var page = Shell.Current.CurrentPage;
如果没有,您可以使用:
var page = Application.Current.MainPage;