/// <summary> /// 弹出通知toast,使用方法:ShowToastNotification("Square150x150Logo.scale-200.png", $"已复制 {val}", NotificationAudioNames.Default); /// </summary> /// <param name="assetsImageFileName">在Asserts根目录下的图片名称,注意必须在Assets文件夹下,具体参见源码</param> /// <param name="text">通知的文本信息</param> /// <param name="audioName">通知的声音,源码有自定义枚举</param> /// 来源:http://edi.wang/post/2015/11/8/uwp-toast-notification public static void ShowToastNotification(string assetsImageFileName, string text, NotificationAudioNames audioName) { // 1. create element ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); // 2. provide text XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(text)); // 3. provide image XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image"); ((XmlElement)toastImageAttributes[0]).SetAttribute("src", $"ms-appx:///Assets/{assetsImageFileName}"); ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "logo"); // 4. duration IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "short"); // 5. audio XmlElement audio = toastXml.CreateElement("audio"); audio.SetAttribute("src", $"ms-winsoundevent:Notification.{audioName.ToString().Replace("_", ".")}"); toastNode.AppendChild(audio); // 6. app launch parameter //((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\",\"param1\":\"12345\",\"param2\":\"67890\"}"); // 7. send toast ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); }
public static void ShowToastNotification(string assetsImageFileName, string text, NotificationAudioNames audioName) { // 1. create element var toastTemplate = ToastTemplateType.ToastImageAndText01; var toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); // 2. provide text var toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(text)); // 3. provide image var toastImageAttributes = toastXml.GetElementsByTagName("image"); if (assetsImageFileName.IndexOf("ms-appx:") < 0) { assetsImageFileName = $"ms-appx:///assets/{assetsImageFileName}"; } ((XmlElement)toastImageAttributes[0]).SetAttribute("src", assetsImageFileName); ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "logo"); // 4. duration var toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "short"); // 5. audio var audio = toastXml.CreateElement("audio"); audio.SetAttribute("src", $"ms-winsoundevent:Notification.{audioName.ToString().Replace("_", ".")}"); toastNode.AppendChild(audio); // 6. app launch parameter //((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\",\"param1\":\"12345\",\"param2\":\"67890\"}"); // 7. send toast var toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); }
public static void ShowToastNotification(string assetsImageFileName, string text, NotificationAudioNames audioName = NotificationAudioNames.Default) { // 1. 创建元素 ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); // 2. 提供文本 XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(text)); // 3. 提供图片 XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image"); ((XmlElement)toastImageAttributes[0]).SetAttribute("src", $"ms-appx:///{assetsImageFileName}"); ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "logo"); // 4. 持续时间 IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((Windows.Data.Xml.Dom.XmlElement)toastNode).SetAttribute("duration", "short"); // 5. 音频 XmlElement audio = toastXml.CreateElement("audio"); audio.SetAttribute("src", $"ms-winsoundevent:Notification.{audioName.ToString().Replace("_", ".")}"); toastNode.AppendChild(audio); // 6. 应用程序启动参数 //((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\",\"param1\":\"12345\",\"param2\":\"67890\"}"); // 7. 发送吐司 ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); toast.Activated += SavedPictures; }
/// <summary> /// 创建Toast通知 /// </summary> /// <param name="assetsImageFileName">图片名称-默认在Assets文件夹中的图片文件</param> /// <param name="text">显示文本</param> /// <param name="audioName">枚举,声音提示</param> /// /// <param name="Scheduled">是否定时延期通知,默认2秒后执行</param> public static void ShowToastNotification(string assetsImageFileName, string text, NotificationAudioNames audioName, bool Scheduled = false) { try { //01 创建toast 通知XML模板,选择ToastImageAndText01。 ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); //02 显示文本信息 XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(text)); //03 显示图片信息 XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image"); ((XmlElement)toastImageAttributes[0]).SetAttribute("src", $"ms-appx:///assets/{assetsImageFileName}"); ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "Logo"); //04 设定显示时间间隔: 短,中,长 IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "short"); //05 设定通知系统声音 XmlElement audio = toastXml.CreateElement("audio"); audio.SetAttribute("src", $"ms-winsoundevent:Notification.{audioName.ToString().Replace("_", ".")}"); //06 设定,点击通知时,返回App OnLaunched 事件中的参数,APP 根据参数,可以指定页面并作相应的动作 ((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\", \"param1\": \"3697\"}"); //07 定时执行通知 if (Scheduled) { ScheduledToastNotification toast3 = new ScheduledToastNotification(toastXml, DateTimeOffset.Now.AddSeconds(2)); ToastNotificationManager.CreateToastNotifier().AddToSchedule(toast3); } else { // 直接发送toast 通知。 ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); } } catch (Exception e) { throw new Exception("Create Toast Nitification failed! ", e); } }
public static void ShowToastNotification(string assetsImageFileName, string text, NotificationAudioNames audioName, string jsoNotificationmess) { try { ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(text)); XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image"); ((XmlElement)toastImageAttributes[0]).SetAttribute("src", $"ms-appx:///assets/{assetsImageFileName}"); ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "Logo"); IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "short"); XmlElement audio = toastXml.CreateElement("audio"); audio.SetAttribute("src", $"ms-winsoundevent:Notification.{audioName.ToString().Replace("_", ".")}"); ((XmlElement)toastNode).SetAttribute("launch", jsoNotificationmess); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); } catch (Exception e) { throw new Exception("Create Toast Nitification failed! ", e); } }