Fix notifications on android
This commit is contained in:
parent
36ec13d428
commit
e9eeea48e5
2 changed files with 20 additions and 6 deletions
|
@ -3,9 +3,11 @@ class ServerConnection {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._connect();
|
this._connect();
|
||||||
Events.on('beforeunload', e => this._disconnect(), false);
|
Events.on('beforeunload', e => this._disconnect(), false);
|
||||||
|
Events.on('pageshow', e => this._connect(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
_connect() {
|
_connect() {
|
||||||
|
if (this._isConnected()) return
|
||||||
const ws = new WebSocket(this._endpoint());
|
const ws = new WebSocket(this._endpoint());
|
||||||
ws.binaryType = 'arraybuffer';
|
ws.binaryType = 'arraybuffer';
|
||||||
ws.onopen = e => console.log('WS: server connection opened');
|
ws.onopen = e => console.log('WS: server connection opened');
|
||||||
|
@ -16,6 +18,10 @@ class ServerConnection {
|
||||||
clearTimeout(this._reconnectTimer);
|
clearTimeout(this._reconnectTimer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_isConnected(){
|
||||||
|
return this._socket && this._socket.readyState === this._socket.OPEN;
|
||||||
|
}
|
||||||
|
|
||||||
_onMessage(msg) {
|
_onMessage(msg) {
|
||||||
msg = JSON.parse(msg);
|
msg = JSON.parse(msg);
|
||||||
console.log('WS:', msg);
|
console.log('WS:', msg);
|
||||||
|
|
|
@ -358,12 +358,16 @@ class Notifications {
|
||||||
}
|
}
|
||||||
|
|
||||||
_notify(message, body) {
|
_notify(message, body) {
|
||||||
var img = '/images/logo_transparent_128x128.png';
|
const config = {
|
||||||
return new Notification(message, {
|
|
||||||
body: body,
|
body: body,
|
||||||
icon: img,
|
icon: '/images/logo_transparent_128x128.png',
|
||||||
vibrate: [200, 100, 200, 100, 200, 100, 400],
|
vibrate: [200, 100, 200, 100, 200, 100, 400],
|
||||||
});
|
}
|
||||||
|
if (serviceWorker && serviceWorker.showNotification) {
|
||||||
|
return serviceWorker.showNotification(message, config);
|
||||||
|
} else {
|
||||||
|
return new Notification(message, config);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_messageNotification(message) {
|
_messageNotification(message) {
|
||||||
|
@ -434,10 +438,14 @@ document.copy = text => {
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('serviceWorker' in navigator && isProductionEnvironment) {
|
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
navigator.serviceWorker
|
navigator.serviceWorker
|
||||||
.register('/service-worker.js')
|
.register('/service-worker.js')
|
||||||
.then(e => console.log("Service Worker Registered"));
|
.then(serviceWorker => {
|
||||||
|
console.log('Service Worker registered');
|
||||||
|
window.serviceWorker = serviceWorker
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Background Animation
|
// Background Animation
|
||||||
|
|
Loading…
Reference in a new issue