【ストアアプリ】トースト通知の基本

公開日: : 最終更新日:2015/10/20 Blog, Microsoft ,

Windowsストアアプリ開発での基本。
トースト通知について投稿します。

Package.appxmanifestの[アプリケーション]->[トースト対応]を[はい]にする
to-suto_taiou

最小限の通知方法は以下

//トーストのXMLテンプレートを取得
ToastTemplateType template = ToastTemplateType.ToastImageAndText01;
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(template);

//指定したXMLコンテンツに基づいてトースト通知を作成する
var toast = new ToastNotification(toastXml);

//トースト通知を送信する
ToastNotificationManager.CreateToastNotifier().Show(toast);

トーストのテンプレートは以下を参考にします。
https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.ui.notifications.toasttemplatetype.aspx?f=255&MSPPError=-2147217396

他には以下のようなことが出来ます。

//通知のテキストコンテンツを指定する
//DOMを使ってノードにアクセスする
XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
toastTextElements[0].AppendChild(toastXml.CreateTextNode(txtHoge.Text));

//通知の画像を指定する
XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image");
((XmlElement)toastImageAttributes[0]).SetAttribute("src", "ms-appx:///assets/nezumi.png");

//トーストの期間を指定する
IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
((XmlElement)toastNode).SetAttribute("duration", "long");

//トーストのオーディオを指定する
XmlElement audio = toastXml.CreateElement("audio");
audio.SetAttribute("src", "ms-winsoundevent:Notification.Mail");
toastNode.AppendChild(audio);

//トースト通知からのアクティブ化動作を定義
//Navigateされてきた時のe.Parameterに格納されてくる
((XmlElement)toastNode).SetAttribute("launch", "hogeClicked");

※トーストのオーディオオプションカタログは以下を参考に。
https://msdn.microsoft.com/ja-jp/library/windows/apps/hh761492.aspx

トーストクリックからのアクティブ化時はOnLaunchedで引数が取得できます。
ストアアプリテンプレートでは既定で以下のようにNavigateされているはずなので、
[charp]
rootFrame.Navigate(typeof(MainPage), e.Arguments);
[/charp]

以下のようにしてやれば取得できます。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    //ここではトースト通知からのアクティブ化の場合を想定
    if(e.Parameter != null && !string.IsNullOrWhiteSpace(e.Parameter.ToString()))
    {
        txtHoge.Text = e.Parameter.ToString();
    }
}

GitHubにアップしました。
https://github.com/Tak1wa/ToastExample

関連記事

no image

UWP+IoT Coreのシリアル通信メモ

Windows10 IoT + Raspberry Pi を始めようとしているのだが、どうもセンサー

記事を読む

no image

Microsoft.Expression.Encoderで動画のフレーム画像を取得

動画ファイルから指定したフレーム画像を取得する。 Microsoft.Expression.Enco

記事を読む

no image

【UWP】矢印キーでのフォーカス移動

FocusManagerで上下左右のフォーカス遷移が出来るので、その仕組みを利用してやるビヘイビアを

記事を読む

no image

Microsoft Flow 入門

社内LT用

記事を読む

【WPF/XAML】チェックボックスのデザイン変更

[xml] <Window x:Class="Sample"

記事を読む

no image

【.NET】イベントのサブスクライブとサブスクライブ解除

.NETでイベントをハンドルする方法 サブスクライブ void CustomEven

記事を読む

no image

【Cocos2d-x】Cocos2d-xセットアップ

メモ。Xcodeはインストール済、OSはMac10.9.5 必要なものをダウンロード&解凍

記事を読む

Visual Studio から Android SDK Managerが起動できない

Android SDKやエミュレーターイメージのアップデートを行いたい場合にAndroid SDK

記事を読む

Xamarin.Forms出力バイナリのメモ

iOS -> .ipa, Android -> .apk ipaファイル作成方法 ソリュー

記事を読む

Xamarin Studio から Visual Studio for Mac へ変更してから、”The “XamlCTask” task failed unexpectedly.” が発生。

Visual Studio for Mac がGAしたので、インストールしてみた。 それまで開発して

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑