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

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

Desktop App Converter で作成したUWPアプリケーションをストアで公開したい

Twitterで掲題について調べている人がいらっしゃって、一緒に調べてみたのだが 案内されているペー

記事を読む

no image

【Swift】SecItemCopyMatchingで複数件を処理

SecItemCopyMatchingを使ってKeyChainからデータを取得する時に 全件取得し

記事を読む

no image

SmallBasicで拡張ライブラリを使用する

こんにちは。 teratailにて以下の質問に遭遇しまして。 small basic の 拡

記事を読む

【iPhoneアプリ】開発者登録手順(iOS Developer Program) その1

iPhoneアプリの作成からリリースまでの一通りの流れを体験したかったため、 簡単なiPhon

記事を読む

no image

Visual Studio 2017 Version15.2 にアップデート後、Xamarin.iOS でビルドエラーが発生時の回避メモ

環境 Visual Studio Enterprise 2017 Version 15.2

記事を読む

初心者でも手順どおりに従うだけでロゴ画像が作れる

Webサイトを作ったので、ここを参考に ロゴ制作の練習をしました。  

記事を読む

no image

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

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

記事を読む

no image

【WPF/XAML】Buttonのテキスト(Content)を自動改行/折り返しさせる

今更WPFを触りはじめました。 それまではほぼ.NETは2.0止まりというオワコン開発者です。

記事を読む

no image

【Xcode】Capabilities全項目【v6.1時点】

Capabilitiesの各項目が何を示しているのか よくわからなかった、かつ日本語のサイトが少な

記事を読む

Visual Studio 2015 Update1 の Xamarin.Forms でインテリセンスを使いたい

Xamarinを触り始めました。 チュートリアルということで、Xamarin.Forms Quick

記事を読む

Message

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

PAGE TOP ↑