From c526f1bf3b6ad0c35ea28d4e6c31817da67a2b5e Mon Sep 17 00:00:00 2001 From: Charles Gould Date: Wed, 28 Feb 2018 23:31:27 -0500 Subject: [PATCH] Fix notification permission request for Safari --- server/src/main/resources/static/client.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/server/src/main/resources/static/client.js b/server/src/main/resources/static/client.js index 2c7a481..7cba2d4 100644 --- a/server/src/main/resources/static/client.js +++ b/server/src/main/resources/static/client.js @@ -335,9 +335,21 @@ function main() { function start() { // Request permission to show notifications - Notification.requestPermission().then(function(result) { - console.log('Notification permission: ' + result); - }); + try { + Notification.requestPermission().then(function(result) { + console.log('Notification permission: ' + result); + }); + } catch (error) { + // Safari doesn't return a promise for requestPermissions and it throws a TypeError. + // It takes a callback as the first argument instead. + if (error instanceof TypeError) { + Notification.requestPermission(() => { + console.log('Notification permission: ' + Notification.permission); + }); + } else { + throw error; + } + } // Load initial data doHttpGet('/games', function(games) {