Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Notification.md #6924

Open
wants to merge 2 commits into
base: nw13
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions docs/References/Notification.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@

_Notification API requires node-webkit >= v0.10.1_
peq42 marked this conversation as resolved.
Show resolved Hide resolved

peq42 marked this conversation as resolved.
Show resolved Hide resolved
`Notification` specification is based from http://www.w3.org/TR/notifications/

Here is the API specification:
```javascript
[Constructor(DOMString title, optional NotificationOptions options)]
interface Notification : EventTarget {

attribute EventHandler onclick;
attribute EventHandler onshow;
attribute EventHandler onerror;
attribute EventHandler onclose;

readonly attribute DOMString body;
readonly attribute DOMString icon;

void close();
};

dictionary NotificationOptions {
DOMString body;
DOMString icon;
};
```

# Sample code
```javascript

var options = {
icon: "http://yourimage.jpg",
body: "Here is the notification text"
};

var notification = new Notification("Notification Title",options);
notification.onclick = function () {
document.getElementById("output").innerHTML += "Notification clicked";
}

notification.onshow = function () {
// play sound on show
myAud=document.getElementById("audio1");
myAud.play();

// auto close after 1 second
setTimeout(function() {notification.close();}, 1000);
}
```
# General Notes
you can use `http://` or `file://` for the `icon`. NW.js supports jpg / png files
## Windows
### Balloon Notification
if no icon is specified, it will use the app's icon.

icon size must be >= 32x32

### Toast Notification (requires NW.js >= v0.11)
* Only for Win8 (or newer)
* The icon must be using `file://`
* A shortcut to your app, with a System.AppUserModel.ID, must be installed to the Start screen. Note, however, that it does not need to be pinned to the Start screen. For more information, see How to enable desktop toast notifications through an AppUserModelID (http://msdn.microsoft.com/en-us/library/windows/desktop/hh802762(v=vs.85).aspx).

The shortcut, ideally should be created by the application installer, but we have the API to create this, recommended to run this once during the application startup (in case the user deleted the shortcut link)

```javascript
var gui = require('nw.gui');
gui.App.createShortcut(process.env.APPDATA + "\\Microsoft\\Windows\\Start Menu\\Programs\\node-webkit.lnk");
peq42 marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

@TheJaredWilcurt TheJaredWilcurt Sep 29, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

createShortcut is was removed from the NW.js API in 0.13.0. So it is only needed in NW.js >=0.11.0 & <=0.12.3 on Windows 8+.

```
the command will create / update the shortcut link with AppUserModelID

The AppUserModelID can be specified in package.json file
```javascript
{
"app-id": "com.node.webkit.notification.test"
}
```
if it is not, it will use the application name as the AppUserModelID

for complete sample code, go here https://github.com/nwjs/nw.js/tree/master/tests/manual_tests/notification