diff --git a/assets/js/sw.js b/assets/js/sw.js
new file mode 100644
index 0000000..e69de29
diff --git a/src/ui/Home.js b/src/ui/Home.js
index 76623bb..70f9ed6 100644
--- a/src/ui/Home.js
+++ b/src/ui/Home.js
@@ -25,7 +25,7 @@ export default class Home extends React.Component {
-
+
diff --git a/src/ui/NotifPage.js b/src/ui/NotifPage.js
index 64d80d6..a39163a 100644
--- a/src/ui/NotifPage.js
+++ b/src/ui/NotifPage.js
@@ -37,19 +37,32 @@ export default class NotifPage extends React.Component {
});
socket.on('message', (data) => {
- new Notification(
- data || 'Received a notification!',
- {
- body: 'Notification from Notica',
- badge: 'assets/img/icon.png',
- icon: 'assets/img/icon.png',
- image: 'assets/img/icon.png',
- vibrate: 200
- }
- );
+ console.log("Notification: " + data);
+ checkperm(Notification.permission);
+ sendNotification(data);
});
}
+ sendNotification(data) {
+ let title = data || 'Received a notification!';
+
+ let options = {
+ body: 'Notification from Notica',
+ icon: 'assets/img/icon.png',
+ iconUrl: 'assets/img/icon.png',
+ vibrate: [200, 100, 200]
+ };
+
+ try {
+ navigator.serviceWorker.register('/assets/js/sw.js').then((reg) => {
+ reg.showNotification(title, options);
+ });
+ } catch (e) { // If we are on a browser without serviceWorker
+ new Notification(title, options);
+ }
+
+ }
+
checksupport() {
let supported = ('Notification' in window);
this.setState({supported: supported});
@@ -65,6 +78,9 @@ export default class NotifPage extends React.Component {
if (permission === 'granted') {
this.setState({haveperm: true});
}
+ else {
+ this.setState({haveperm: false});
+ }
}
render() {