diff --git a/plugin.xml b/plugin.xml
index 67781b6..02f663a 100755
--- a/plugin.xml
+++ b/plugin.xml
@@ -72,13 +72,23 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/windows/toastProxy.js b/src/windows/toastProxy.js
new file mode 100644
index 0000000..5de2e46
--- /dev/null
+++ b/src/windows/toastProxy.js
@@ -0,0 +1,56 @@
+/**
+ * @author Piotr Smolarski
+ */
+var toastProxy = {
+
+ lastDisplayedNotification: null,
+
+ show: function(successCallback, errorCallback, options) {
+ var notifications = Windows.UI.Notifications;
+
+ var template = notifications.ToastTemplateType.ToastText01;
+ var toastXml = notifications.ToastNotificationManager.getTemplateContent(template);
+
+ var toastTextElements = toastXml.getElementsByTagName("text");
+ toastTextElements[0].appendChild(toastXml.createTextNode(options[0].message));
+
+ var toastNode = toastXml.selectSingleNode("/toast");
+ toastNode.setAttribute("duration", options[0].duration);
+
+ var toast = new notifications.ToastNotification(toastXml);
+
+ toast.onactivated = function (event) {
+ toastProxy.lastDisplayedNotification = null;
+ successCallback({
+ event: "touch",
+ message: options[0].message,
+ data: options[0].data,
+ });
+ }
+
+ toast.ondismissed = function (event) {
+ toastProxy.lastDisplayedNotification = null;
+ successCallback({
+ event: "hide",
+ message: options[0].message,
+ data: options[0].data
+ });
+ }
+
+ toast.onfailed = function(err) {
+ toastProxy.lastDisplayedNotification = null;
+ errorCallback(err);
+ }
+
+ notifications.ToastNotificationManager.createToastNotifier().show(toast);
+ },
+
+ hide: function() {
+ if (this.lastDisplayedNotification !== null) {
+ notifications.ToastNotificationManager.createToastNotifier().hide(toast);
+ this.lastDisplayedNotification = null;
+ }
+ }
+}
+
+cordova.commandProxy.add("Toast", toastProxy);