Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
99 lines (67 sloc) 4.41 KB
layout title date author comments category tags
post
Windows 8 Uygulamalarda Toast Notification Kullanımı
2012-12-13 17:08
engin.polat
true
Windows
appendchild
appxmanifest
audio
capable
createtextnode
createtoastnotifier
enum
getelementbytagname
messagedialog
notification
package
public
static
string
toast
toastnotificationmanager
toasttemplatetype
windows8
winsoundevent

Windows 8 uygulaması geliştirirken kullanıcıyı bilgilendirmek isteyebiliriz. Kullanıcıya sadece bilgi vermek için MessageDialog kullanmak doğru olmayacaktır, kullanıcı bir süre sonra rahatsızlık duymaya başlayacak ve belkide uygulamayı kullanmaktan vazgeçecektir.

Kullanıcıyı bilgilendirmenin daha doğru yolu Toast Notification sistemini kullanmaktır.

Toast Notification sistemini kullanırken dikkat etmemiz gereken ToastTemplateType enum yapısıdır.

MSDN'de yer alan ToastTemplateType enumeration sayfasından hangi tiplerde toast notification gösterebileceğinizi öğrenebilirsiniz.

using kısmına

Windows.UI.Notifications

eklemeliyiz. Örnek kullanım;

public static void ShowNotification(string Title, string Message)
{
    const ToastTemplateType template = ToastTemplateType.ToastText02;
    var toastXml = ToastNotificationManager.GetTemplateContent(template);

    var toastText = toastXml.GetElementsByTagName("text");
    toastText[0].AppendChild(toastXml.CreateTextNode(Title));
    toastText[1].AppendChild(toastXml.CreateTextNode(Message));

    var toast = new ToastNotification(toastXml);

    var toastNotifier = ToastNotificationManager.CreateToastNotifier();
    toastNotifier.Show(toast);
}

public static void ShowNotification(string Title, string Message, string ImageFileName)
{
    const ToastTemplateType template = ToastTemplateType.ToastImageAndText01;
    var toastXml = ToastNotificationManager.GetTemplateContent(template);

    var toastText = toastXml.GetElementsByTagName("text");
    toastText[0].AppendChild(toastXml.CreateTextNode(Title));
    toastText[1].AppendChild(toastXml.CreateTextNode(Message));

    var toastImage = toastXml.GetElementsByTagName("image");
    toastImage.SetAttribute("src", ImageFileName);

    var toast = new ToastNotification(toastXml);

    var toastNotifier = ToastNotificationManager.CreateToastNotifier();
    toastNotifier.Show(toast);
}

Hatta Toast Notification gösterimi esnasında uyarı sesi bile çaldırabiliriz. Bunu yapmak için audio elementini kullanacağız. Sistemde kayıtlı uyarı sesleri;

  • ms-winsoundevent:Notification.Default
  • ms-winsoundevent:Notification.IM
  • ms-winsoundevent:Notification.Mail
  • ms-winsoundevent:Notification.Reminder
  • ms-winsoundevent:Notification.SMS
  • ms-winsoundevent:Notification.Looping.Alarm
  • ms-winsoundevent:Notification.Looping.Alarm2
  • ms-winsoundevent:Notification.Looping.Call
  • ms-winsoundevent:Notification.Looping.Call2

Örnek kullanım;

public static void ShowNotification(string Title, string Message, string ImageFileName, string SoundName)
{
    const ToastTemplateType template = ToastTemplateType.ToastImageAndText01;
    var toastXml = ToastNotificationManager.GetTemplateContent(template);

    var toastText = toastXml.GetElementsByTagName("text");
    toastText[0].AppendChild(toastXml.CreateTextNode(Title));
    toastText[1].AppendChild(toastXml.CreateTextNode(Message));

    var toastImage = toastXml.GetElementsByTagName("image");
    toastImage.SetAttribute("src", ImageFileName);

    var toastAudio = toastXml.GetElementsByTagName("audio");
    toastAudio.SetAttribute("src", SoundName);

    var toast = new ToastNotification(toastXml);

    var toastNotifier = ToastNotificationManager.CreateToastNotifier();
    toastNotifier.Show(toast);
}


Son olarak, yukarıdaki kodların çalışması için uygulamanın *Package.appxmanifest* dosyasında **Toast Capable** seçeneğine **Yes** değerini vermeyi *unutmamalıyız*