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

公開日: : 最終更新日: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でMicrosoft.OData.Clientを使用する時、LINQ式でエラー

UWPからは非同期メソッドを実行する必要があるので、通常はExecuteAsyncをコールするが、

記事を読む

no image

Expression Encoder を組み込んだアプリケーションを配布する際のライセンス問題

Windowsアプリケーションにメディア編集機能を実装したい場合に、Expression Encod

記事を読む

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

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

記事を読む

【iPhoneアプリ】リリース手順〜審査申し込み〜

初めてiPhoneアプリを作成したがリリース手順が 手元の参考書と全然違って困ったのでメモ。

記事を読む

UWPをHockeyApp対応させる

走り書きメモ。 UWPをHockeyApp対応させるためにはNuGetパッケージを使ってモジュール

記事を読む

no image

Xamarin.UITest, Xamarin Test Cloud にて iPhone 6 Plus, 6S Plus, 7 Plus などで app.Tap が効かない

動作しないというか、app.Tapがどうしても反応しない。 app.ScreenShotなどは動作す

記事を読む

no image

YomiganaWPFTextBox

こんにちは。 WPFでテキストボックスに入力した内容をカナ変換する方法について今日は掲載します

記事を読む

no image

【ストアアプリ】バックグラウンドタスクを作成する

こんにちは。 Windows.ApplicationModel.Background名前空間を使用

記事を読む

no image

【VB.NET】DataGridViewで行の最大高を設定

DataGridViewにおける行の最大高さを設定するメモ 最大高さに満たない場合は内容を全て表示

記事を読む

【iPhoneアプリ】多言語対応させる1

iPhoneアプリを多言語対応(iPhone端末の言語設定によってアプリケーションの言語も切り替える

記事を読む

Message

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

PAGE TOP ↑