Fix notifications on android

This commit is contained in:
RobinLinus 2018-09-21 18:54:52 +02:00
parent 36ec13d428
commit e9eeea48e5
2 changed files with 20 additions and 6 deletions

View file

@ -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);

View file

@ -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