识别.NET MAUI 应用程序中用户所在的页面

问题描述 投票:0回答:1

如何识别用户在 .NET MAUI shell 应用程序中所在的页面?

为了提供更多背景信息,这就是我想要做的:

我的 .NET MAUI 应用程序(使用 Shell)有相当多的页面,其中一些在

AppShell.xaml
中定义为选项卡页面。其中一个页面使用
SignalR
提供实时聊天功能。

我试图让体验尽可能类似于 iOS 和 Android 中的内置聊天功能,其中:

  • 如果用户位于聊天页面(换句话说,积极参与聊天),则会针对任何传入消息播放更微妙的音频通知
  • 如果用户不在聊天页面但正在积极使用该应用程序,则会播放更清晰的声音通知以提醒用户有传入消息
  • 如果用户没有使用该设备,则会使用系统通知来提醒用户

我使用 Azure 通知中心服务来处理第三个/最后一个场景,但对于我处理前两个场景,我需要知道用户所在的页面,以便我可以确定要使用的音频通知。

我有一个

ChatService
,其中包含所有用于处理发送/接收消息的
SignalR
代码。在
MessageReceived()
方法中,我需要确定用户的页面。因此,此代码不会在页面代码后面或视图模型中运行,而是在服务类中运行,这就是为什么我需要一种更通用的方法来确定用户在我的应用程序中的当前“位置”。

maui
1个回答
0
投票

当您使用 shell 时,您可以获得当前页面,如下所示:

var page = Shell.Current.CurrentPage;

如果没有,您可以使用:

var page = Application.Current.MainPage;
© www.soinside.com 2019 - 2024. All rights reserved.