I want to develop a universal app for Windows Phone 8.1 which contains a local “Notification”.
What I want to do is to show all messages to the user (error, information,
You could use a local notification that appears when your app is running.
ToastTemplateType toastTemplateXml = ToastTemplateType.ToastImageAndText01;
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplateXml);
You'll then need to populate the XML returned by GetTemplateContent
<toast>
<visual>
<binding template="ToastImageAndText01">
<image id="img" src=""/>
<text id="txt"></text>
</binding>
</visual>
</toast>
Supply the content of your toast in the XML DOM. The image is relevant only for Windows 8.1.
Specify it's launch parameters
((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\",\"param1\":\"1\",\"param2\":\"2\"}");
Create the toast object:
ToastNotification toast = new ToastNotification(toastXml);
and finally display the toast.
ToastNotificationManager.CreateToastNotifier().Show(toast);
Also, If you want to use a third party control to display the toast then you could consider writing a Windows Phone 8.1 Silverlight app.
With the help of the @msimons response and the following url : http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868254.aspx I succeed to display my notifications.
For those who need it, here is my final method :
private void ShowToastNotification(String message)
{
ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01;
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
// Set Text
XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
toastTextElements[0].AppendChild(toastXml.CreateTextNode(message));
// Set image
// Images must be less than 200 KB in size and smaller than 1024 x 1024 pixels.
XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image");
((XmlElement)toastImageAttributes[0]).SetAttribute("src", "ms-appx:///Images/logo-80px-80px.png");
((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "logo");
// toast duration
IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
((XmlElement)toastNode).SetAttribute("duration", "short");
// toast navigation
var toastNavigationUriString = "#/MainPage.xaml?param1=12345";
var toastElement = ((XmlElement)toastXml.SelectSingleNode("/toast"));
toastElement.SetAttribute("launch", toastNavigationUriString);
// Create the toast notification based on the XML content you've specified.
ToastNotification toast = new ToastNotification(toastXml);
// Send your toast notification.
ToastNotificationManager.CreateToastNotifier().Show(toast);
}
I tested on a universal application windows phone 8.1.
And don't forget to edit "Package.appxmanifest" and activate notifications. The capability to raise toast notifications is declared in your app's package.appxmanifest file. If you use the Microsoft Visual Studio manifest editor, simply set the Toast capable option to "Yes" in the Notification section of the Application tab.