今回は、自作アプリにトースト通知をする方法について見ていきます。
トースト通知は、「メールを受信しましたよ」や「~が更新されましたよ」など、何らかの情報をユーザーに伝えたい場合に使用する機能です。
ストアアプリのプロジェクトを作成したら、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をクリックするとトースト通知されます。



コメント