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

公開日: : 最終更新日: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

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

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

記事を読む

no image

【C#,WinForms】XMLデータをListViewに表示し、チェック項目のみXML保存させる

MSDNフォーラムの以下についてサンプルを組んだので掲載。 ListViewでチェックされた値

記事を読む

【iPhoneアプリ】リリース手順〜審査完了後〜

前回からの続き。 中身が無いアプリだったのでリジェクトされると思いきや 審査に通ってしま

記事を読む

Xamarin.Forms で NavigationPage を PushModalAsync すると例外が発生するときがある

Forms 2.3.4.231 Mapコントロールがあるページで、NavigationPage

記事を読む

【iPhoneアプリ】リリース手順〜プロビジョニングプロファイルを作成する〜

リリース前にDistribution Provisioning Profileを作成する 手順

記事を読む

【ストアアプリ】画像の光学式ズーム

こんにちは。 スマートデバイスといえばタッチ操作、ということで 今日はWindowsストアアプリ

記事を読む

【.NET Framework 4.6.1】MultiLineなTextBoxでCtrl+Aが使えない問題が解決(今更)

WinForms.NETなアプリケーションの標準TextBoxで、Multiline=Trueに設定

記事を読む

[OxyPlot]errro CS0117: ‘Resource.Attribute’ に ‘mediaRouteSettingsDrawable’ の定義がありません

Xamarin.Formsでグラフ描画を行う方法のひとつにOxyPlotというライブラリがある。

記事を読む

no image

【WPF/XAML】Visibility変更時のアニメーション切替

ストーリーボードを使わずに、Visibility変更でアニメーションを発生させたかった。 やってる

記事を読む

画面設計デザイン時の無料画面イメージ作成ツール

画面デザイン全般に使っているツールを紹介。 Webアプリ作成時のワイヤーフレームや、 ス

記事を読む

Message

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

PAGE TOP ↑