我正在向这样的设备发送Toast Notifications。
private void SendNotification(string text, string activatedargs = null) {
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);
XmlNodeList elements = toastXml.GetElementsByTagName("text");
foreach(IXmlNode node in elements) {
node.InnerText = text;
}
if(!string.IsNullOrEmpty(activatedargs)) {
((XmlElement)toastXml.SelectSingleNode("/toast")).SetAttribute("launch", activatedargs);
}
ToastNotification notification = new ToastNotification(toastXml);
notification.Activated += notification_Activated;
ToastNotificationManager.CreateToastNotifier().Show(notification);
}
如您所见,我正在为Activated事件添加回调函数。这个效果很好,而toast通知弹出窗口出现在屏幕顶部。但是,当通知消失并且通知仅在操作中心中可见时,在选择通知时永远不会调用回调。该应用程序可以正常打开,但不会打开包含基于所选通知的信息的视图。
所以,如果我发送了三个Toast通知," A"," B"和" C"。这三个通知列在我的应用名称下面的操作中心中。当点击通知" B"具体来说,如何将应用程序打开到专门与" B"?
相关的视图答案 0 :(得分:0)
您应该将activatedargs
设置为包含标识" A"," B"或" C"。
activatedargs = "B"
然后在App.xaml.cs中,您可以获得标识并基于此,导航到正确的视图
protected override void OnLaunched(LaunchActivatedEventArgs args)
{
string launchString = launchEventArgs.Arguments;
if (!String.IsNullOrEmpty(launchString))
{
// Get the identification and navigate to correct view
switch(launchString)
{
case "B": NavigateToViewModel<BViewModel>();
}
}
}