Commit f47e405b by PKnittel

Added support for Notification-Icons on Windows (desktop)

parent 5d59f545
...@@ -86,20 +86,52 @@ exports.isRepeating = function (notification) { ...@@ -86,20 +86,52 @@ exports.isRepeating = function (notification) {
* @param {String} path * @param {String} path
* Relative path to sound resource * Relative path to sound resource
* *
* @return {String} URI to Sound-File * @return {String} XML Tag for Sound-File
*/ */
exports.parseSound = function (path) { exports.parseSound = function (path) {
if (!path.match(/^file/))
return '';
var uri = this.parseUri(path),
audio = "<audio src=" + uri + " loop='false'/>";
return audio;
};
/**
* Parses image file path.
*
* @param {String} path
* Relative path to image resource
*
* @return {String} XML-Tag for Image-File
*/
exports.parseImage = function (path) {
if (!path.match(/^file/))
return '';
var uri = this.parseUri(path),
image = "<image id='1' src=" + uri + " />";
return image;
};
/**
* Parses file path to URI.
*
* @param {String} path
* Relative path to a resource
*
* @return {String} URI to File
*/
exports.parseUri = function (path) {
var pkg = Windows.ApplicationModel.Package.current, var pkg = Windows.ApplicationModel.Package.current,
pkgId = pkg.id, pkgId = pkg.id,
pkgName = pkgId.name; pkgName = pkgId.name;
if (!path.match(/^file/)) var uri = "'ms-appx://" + pkgName + "/www" + path.slice(6, path.length) + "'";
return;
var sound = "'ms-appx://" + pkgName + "/www/" + path.slice(6, path.length) + "'",
audio = "<audio src=" + sound + " loop='false'/>";
return audio; return uri;
}; };
/** /**
...@@ -150,28 +182,38 @@ exports.buildToastTemplate = function (options) { ...@@ -150,28 +182,38 @@ exports.buildToastTemplate = function (options) {
sound = this.parseSound(options.sound); sound = this.parseSound(options.sound);
} }
var templateName = "ToastText",
imageNode;
if (options.icon && options.icon !== '') {
imageNode = this.parseImage(options.icon);
// template with Image
if (imageNode !== '') {
templateName = "ToastImageAndText";
};
} else {
imageNode = "";
}
var bindingNode;
if (title && title !== '') { if (title && title !== '') {
return "<toast>" + bindingNode = "<binding template='" + templateName + "02'>" +
"<visual>" + imageNode +
"<binding template='ToastText02'>" +
"<text id='1'>" + title + "</text>" + "<text id='1'>" + title + "</text>" +
"<text id='2'>" + message + "</text>" + "<text id='2'>" + message + "</text>" +
"</binding>" + "</binding>";
"</visual>" +
sound +
"<json>" + json + "</json>" +
"</toast>";
} else { } else {
bindingNode = "<binding template='" + templateName + "01'>" +
imageNode +
"<text id='1'>" + message + "</text>" +
"</binding>";
}
return "<toast>" + return "<toast>" +
"<visual>" + "<visual>" +
"<binding template='ToastText01'>" + bindingNode +
"<text id='1'>" + message + "</text>" +
"</binding>" +
"</visual>" + "</visual>" +
sound + sound +
"<json>" + json + "</json>" + "<json>" + json + "</json>" +
"</toast>"; "</toast>";
}
}; };
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment