まぐらぼ

Unity/Android、Microsoft系のWPFをやってます。

トースト通知を表示するには

ストアアプリでトースト通知するときはマニフェストで機能宣言をする必要があります。忘れると結構悩みますのでご注意下さい。備忘録として記録しておきます。コードは下記の通りでこぴぺでも問題なく動くはず。

f:id:o-maguro:20140702214926j:plain

public void ToastMessage(string msg)
{
    ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01;
    XmlDcument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);

    XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
    toastTextElements[0].AppendChild(toastXml.CreateTextNode(msg));

    XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image");
    ((XmlElement)toastImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/Logo.png");
    ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "profile icon");

    IXmlNode toastNode = toastXml.SelectSingleNode("/toast");

    toastNode = toastXml.SelectSingleNode("/toast");
    XmlElement audio = toastXml.CreateElement("audio");
    audio.SetAttribute("silent", "true");

    toastNode.AppendChild(audio);

    ((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\",\"param1\":\"sample\",\"param2\":\"sample2\"}");

    ToastNotification toast = new ToastNotification(toastXml);
    ToastNotificationManager.CreateToastNotifier().Show(toast);
}