程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Windows 8風格應用開發入門 三十四 構建Toast通知

Windows 8風格應用開發入門 三十四 構建Toast通知

編輯:關於.NET

開發過WindowsPhone應用或者使用過WindowsPhone手機的開發者都知道,我們會收到一些應用的提 示信息,這些提示信息出現在手機的上端,並且停留幾秒鐘後會自動消失,當然如果我們點擊彈出的信 息會自動運行相應的應用程序,這種提示信息我們叫做通知。

其實Windows 8 Store 應用也借 鑒了Windows Phone上的提示信息,我們開發人員可以使自己應用程序在合適時間彈出相關提示信息, 那麼這些Windows 8 Store應用的提示信息,我們叫做Toast通知。

並且Toast通知樣式可以自定 義的。例如:

一、Toast通知概述

Toast 通知是在屏幕右上角(對於 從右到左 (Right-To-Left) 方向位於左上角)顯示的通知。

Toast 通知可在應用上下文之外提供臨時消息

用 toast 通知可立即吸引用戶注意

用戶可以永久關閉應用的 toast 通知

能夠快速導航到應用中上下文相關的位置

很容易從應用本地或雲端調用 toast 通知

Toast 通知使用與動態磁貼類似的模板架構體系,有豐富的展現形式可以選擇。

二、Toast通知構建

1,聲明Toast通知功能

打開Package.appxmanifest應用清單文 件,“應用程序UI”選項卡中找到“支持Toast通知”設置為“是”。

2,聲明 Toast 通知背景色和文本顏色

我們可以為 Toast 通知設置背景顏色和淺色或深色 文本。注意:該設置同時適用Toast 和磁貼通知背景以及文本顏色。

3,指定小徽標圖像

應用的小徽標圖像顯示在每個 Toast 通知的右下角,讓用戶識別引發通 知的應用。

4,添加命名空間聲明

1:  using Windows.UI.Notifications;

2:  using Windows.Data.Xml.Dom;

5,為 Toast 選取一個模板並檢索其 XML 內容

我 們從系統提供的模板目錄中選擇一個適合的模板(詳細的模板列表可參考 ToastTemplateType 枚舉) 。

注意:我們發送的每個單獨的通知都可以使用不同的模板。

1:  ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01;

2:  XmlDocument toastXml = ToastNotificationManager.GetTemplateContent (toastTemplate);

這裡我使用的是ToastImageAndText01 模板,該模版樣式如下:

6,為通知提供文本內容

我們可以首先檢索模板中標記名稱為“text”的所有元素。

ToastImageAndText01 模板只包含一個代碼分配的文本字符串。該字符串最多可包含三行自動 換行的字符串,因此我們應該相應地設置字符串的長度,以避免被截斷。

1:  XmlNodeList toastTextElements = toastXml.GetElementsByTagName ("text");

2:   toastTextElements[0].AppendChild (toastXml.CreateTextNode("你好Windows 8!"));

7,為通知提供圖像

我們 可以首先檢索模板中標記名稱為“image”的所有元素。

與磁貼不同,Toast 模板(如 ToastImageAndText01)最多包含一個圖像。

注意:並非所有 Toast 模板都包含圖像,某些磁 貼模板是僅文本的。

1:  XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image");

然後我們可以從應用的程序包、本地存 儲或從 Web 使用圖像。注意:該圖像大小小於 200 KB,小於 1024 x 1024 像素。

這裡我以應 用程序包的圖像為例:

1:  ((XmlElement)toastImageAttributes[0]).SetAttribute ("src", "ms-appx:///Assets/SmallLogo.png");

2:   ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "red graphic");

8,指定Toast 持續時間或者Toast 音頻(非必要)

我們可以為Toast 設置持續時間(僅有兩個值:short和long),通常當我們的通知屬於約會或者會議提醒之類的時候才 使用“long”值。

注意:Toast持續時間默認為“short”。

1:  IXmlNode toastNode = toastXml.SelectSingleNode("/toast");

2:  ((XmlElement) toastNode).SetAttribute("duration", "long");

另外我們也可以設置 Toast音頻,默認情況下Windows在播放通知時會播放一個簡短的聲音。同時我們可以選擇使用系統提供 的聲音,也可以不使用任何聲音。

由於模板中不包含 audio 元素,因此我們必須定義該元素, 同時使用“ms-winsoundevent:”前綴指定聲音文件。

1:  IXmlNode toastNode = toastXml.SelectSingleNode("/toast");

2:  XmlElement audio = toastXml.CreateElement("audio");

指定非默認聲音。

1:  audio.SetAttribute("src", "ms- winsoundevent:Notification.IM");

定義 audio 元素之後,需要將其附加到 Toast 的 XML 負載中,作為 toast 元素的子元素。

1:  toastNode.AppendChild(audio);

9 ,指定應用的啟動參數

通常用戶點擊 Toast 通知時,相關應用應當會啟動,並顯示與該通知的 內容相關的視圖。

我們可以使用 Toast 元素的 launch 屬性來實現該效果。

該屬性提 供一個在通過 Toast 啟動應用時,從 Toast 傳遞到應用的字符串。此字符串沒有任何特定形式,它由 我們應用來定義。

我們的應用在每次被激活時必須檢查作為參數形式的此字符串,並相應地調 整它的視圖或操作。例如:

1: ((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\",\"param1\":\"12345 \",\"param2\":\"67890\"}");

10,創建 Toast 通知並發送

1:  ToastNotification toast = new ToastNotification(toastXml);

2:  ToastNotificationManager.CreateToastNotifier ().Show(toast);

最後運行效果可如下:

點擊按鈕後彈出Toast通知:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved