今回は、自作アプリにトースト通知をする方法について見ていきます。
トースト通知は、「メールを受信しましたよ」や「~が更新されましたよ」など、何らかの情報をユーザーに伝えたい場合に使用する機能です。
ストアアプリのプロジェクトを作成したら、MainPage.xamlにButtonコントロールを1つ貼り付けてください。
トースト通知の機能を実装するには、マニフェストの設定を行う必要があります。
ソリューションエクスプローラーでPackage.appxmanifestを開いたら、[アプリケーション]タブを選択して「トースト対応」で「はい」に設定をします。
今回はButtonがクリックされた時にトースト通知をするように設定してみます。
以下に、Buttonクリック時のコードを示します。
VBの例
Imports Windows.UI.Notifications Imports Windows.Data.Xml.Dom Private Sub Button_Click(sender As Object, e As RoutedEventArgs) 'トースト通知に使用するテンプレートを選択 Dim toastTemplate As ToastTemplateType = ToastTemplateType.ToastText01 Dim xmlData = ToastNotificationManager.GetTemplateContent(toastTemplate) 'テンプレートの要素を指定する Dim textElements As XmlNodeList = xmlData.GetElementsByTagName("text") textElements(0).AppendChild(xmlData.CreateTextNode("これはトースト通知です")) Dim toast As ToastNotification = New ToastNotification(xmlData) ToastNotificationManager.CreateToastNotifier().Show(toast) End Sub
C#の例
using Windows.UI.Notifications; using Windows.Data.Xml.Dom; private void Button_Click(object sender, RoutedEventArgs e) { // トースト通知に使用するテンプレートを選択 ToastTemplateType toastTemplate = ToastTemplateType.ToastText01; XmlDocument xmlData = ToastNotificationManager.GetTemplateContent(toastTemplate); // テンプレートの要素を指定する XmlNodeList textElements = xmlData.GetElementsByTagName("text"); textElements[0].AppendChild(xmlData.CreateTextNode("これはトースト通知です")); // 表示 ToastNotification toast = new ToastNotification(xmlData); ToastNotificationManager.CreateToastNotifier().Show(toast); }
最初にトースト通知のテンプレートを選択する必要があります。
トースト通知のテンプレートですが、トースト通知には様々な表示方法があります。あらかじめテンプレートが用意されているので、ToastTemplateTypeでどのテンプレートを使用するかを設定します。
今回使用した テンプレートのToastText01は、最大3行まで折り返して表示ができるものです。
テンプレートのサンプルは https://msdn.microsoft.com/ja-jp/library/windows/apps/hh761491.aspx を参照して下さい。
トースト通知に表示するデータは、XMLデータを使用します。
今回はXMLファイルは準備せず、コードでXMLデータを作成しています。既存のサーバーからXMLデータを受け取るように書き換えてもOKです。
XMLデータの中のText要素が、実際に表示するテキストになります。
XmlNodeList型の変数のtextElementsに代入しています。しかし、この時点ではデータの中身はありません(上記の例では、Xmlデータはこの時点で空なので、代入先のtextElementsは空になります)。
textElementsに、トースト通知に表示するテキストを設定してあげます。
VBは textElements(0).AppendChild の部分、C#はtextElements[0].AppendChild の部分です。
「これはトースト通知です」という文字を設定しているので、トースト通知が行われるとこの文字が表示されます。
最後に、実際にトースト通知を行います。
ToastNotificationで表示するXmlデータを設定し、ToastNotificationManagerを使用してトースト通知を行っています。
[F5]キーを押してアプリを起動し、Buttonをクリックするとトースト通知されます。
コメント