Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 5
0
 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);
     }
 }