"body": "# Push [](https://travis-ci.org/Nickersoft/push.js)\r\n\r\n### What is Push? ###\r\n\r\nPush is the fastest way to get up and running with Javascript desktop notifications. A fairly new addition to the official specification, the Notification API allows modern browsers such as Chrome, Safari, and IE 9+ to push notifications to a user's desktop. Push acts as a cross-browser solution to this API, falling back to use older implementations if the user's browser does not support the new API. You can quickly install Push via npm:\r\n\r\n```\r\nnpm install push.js --save\r\n```\r\n\r\n#### Creating Notifications ####\r\nSo just how easy is it to create a notification using Push? We can do it in just one line, actually:\r\n\r\n```javascript\r\nPush.create('Hello World!')\r\n```\r\n\r\nNo constructors, just a universal API you can access from anywhere. Push is even compatible with AMD as well:\r\n\r\n```javascript\r\ndefine(['pushjs'], function (Push) {\r\n Push.create('Hello World!');\r\n});\r\n```\r\n\r\n#### Closing Notifications ####\r\nWhen it comes to closing notifications, you have a few options. You can either set a timeout (see \"Options\"), call Push's close() method, or pass around the notification object and call close() directly. Push's close() method will only work with newer browsers, taking in a notification's unique tag name and closing the first notification it finds with that tag:\r\n\r\n```javascript\r\nPush.create('Hello World!', {\r\n tag: 'foo'\r\n});\r\n\r\n// Somewhere later in your code...\r\n\r\nPush.close('foo');\r\n```\r\n\r\nAlternatively, you can assign the Notification wrapper returned by Push to a variable and close it directly:\r\n\r\n```javascript\r\nvar notification = Push.create('Hello World!');\r\n\r\n// Somewhere later in your code...\r\n\r\nnotification.close();\r\n```\r\n\r\nWhen it comes to clearing all open notifications, that's just as easy as well:\r\n\r\n```javascript\r\nPush.clear();\r\n```\r\n\r\n### Options ###\r\n\r\nThe only required argument in a Push call is a title. However, that doesn't mean you can't add a little something extra. You can pass in options to Push as well, like so:\r\n\r\n```javascript\r\nPush.create('Hello World!', {\r\n body: 'This is some body content!',\r\n icon: {\r\n x16: 'images/icon-x16.png',\r\n x32: 'images/icon-x32.png'\r\n },\r\n timeout: 5000\r\n});\r\n```\r\n\r\n#### Available Options ####\r\n\r\n* __body__: The body text of the notification.\r\n* __icon__: Can be either the URL to an icon image or an array containing 16x16 and 32x32 pixel icon images (see above).\r\n* __onClick__: Callback to execute when the notification is clicked.\r\n* __onClose__: Callback to execute when the notification is closed (obsolete).\r\n* __onError__: Callback to execute when if the notification throws an error.\r\n* __onShow__: Callback to execute when the notification is shown (obsolete).\r\n* __tag__: Unique tag used to identify the notification. Can be used to later close the notification manually.\r\n* __timeout__: Time in milliseconds until notification closes automatically.\r\n\r\n### Credits ###\r\nPush is based off work the following work:\r\n\r\n1. [HTML5-Desktop-Notifications](https://github.com/ttsvetko/HTML5-Desktop-Notifications) by [Tsvetan Tsvetkov](https://github.com/ttsvetko)\r\n2. [notify.js](https://github.com/alexgibson/notify.js) by [Alex Gibson](alexgibson)\r\n",
0 commit comments