好的,我在8.1 SL项目中使用新的ToastNotificationManager而不是旧的ShellToast。 ShellToast在toast消息上有NavigationUri,这非常容易。
在新的祝酒词中,您必须根据this文章自行指定启动参数。但是看起来8.1 SL没有事件 OnLaunched(LaunchActivatedEventArgs args)你应该在App.xaml.cs中监听参数:
第2步:处理应用程序的“OnLaunched”事件
当用户点击你的吐司或通过触摸选择它时, 启动相关应用程序,启动其OnLaunched事件。
注意如果您的吐司中没有包含启动属性字符串 并且当选择Toast时,您的应用程序已在运行 OnLaunched事件未被解雇。
此示例显示了OnLaunched的覆盖语法 事件,您将在其中检索并执行启动字符串 通过吐司通知提供。
protected override void OnLaunched(LaunchActivatedEventArgs args)
{
string launchString = args.Arguments
....
}
我的代码:
// Using the ToastText02 toast template.
ToastTemplateType toastTemplate = ToastTemplateType.ToastText02;
// Retrieve the content part of the toast so we can change the text.
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
//Find the text component of the content
XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
// Set the text on the toast.
// The first line of text in the ToastText02 template is treated as header text, and will be bold.
toastTextElements[0].AppendChild(toastXml.CreateTextNode("Heading"));
toastTextElements[1].AppendChild(toastXml.CreateTextNode("Body"));
// Set the duration on the toast
IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
((XmlElement)toastNode).SetAttribute("duration", "long");
//Launch params
string paramString = "{\"type\":\"toast\",\"param1\":\"12345\"}";
((XmlElement)toastXml.SelectSingleNode("/toast")).SetAttribute("launch", paramString);
// Create the actual toast object using this toast specification.
ToastNotification toast = new ToastNotification(toastXml);
// Set SuppressPopup = true on the toast in order to send it directly to action center without
// producing a popup on the user's phone.
toast.SuppressPopup = true;
// Send the toast.
ToastNotificationManager.CreateToastNotifier().Show(toast);
任何人都知道如何解决这个问题? 感谢
答案 0 :(得分:10)
您的问题是您正在设置错误的launch
参数。您应该将其直接设置为要导航到的页面。
var toastNavigationUriString = ""#/MainPage.xaml?param1=12345";
var toastElement = ((XmlElement)toastXml.SelectSingleNode("/toast"));
toastElement.SetAttribute("launch", toastNavigationUriString);