From c8f7c623197e969ea55f9650cf2ba9efe06ebee3 Mon Sep 17 00:00:00 2001 From: Pierre-David Belanger Date: Sat, 17 Dec 2022 10:16:46 -0500 Subject: [PATCH] factor out a function that handle the external communication --- web/index.html | 22 +++++++++++----------- web/script.js | 18 ++++++++++++++---- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/web/index.html b/web/index.html index f10db33..641b4a1 100644 --- a/web/index.html +++ b/web/index.html @@ -13,37 +13,37 @@
+ onclick="sendMessageToExternal('load_gamelog')">Load gamelog.txt + onclick="sendMessageToExternal('load_soundpack')">Load soundpack + onclick="sendMessageToExternal('load_ignore_list')">Load ignore.txt
+ onclick="sendMessageToExternal('set_default_paths')">Set current paths as default + onclick="sendMessageToExternal('remove_default_paths')">Delete default paths setting + onclick="sendMessageToExternal('set_default_volumes')">Set current volumes as default + onclick="sendMessageToExternal('remove_default_volumes')">Delete default volumes setting
+ onclick="sendMessageToExternal('link_original')">🔗 - zwei's original SoundSense & soundpack + onclick="sendMessageToExternal('link_fork')">🔗 - jecowa's soundpack fork + onclick="sendMessageToExternal('link_source')">🔗 - SoundSense-RS Github repository + onclick="sendMessageToExternal('show_about')">ℹ - About
diff --git a/web/script.js b/web/script.js index f3ce8ab..8f8e634 100644 --- a/web/script.js +++ b/web/script.js @@ -2,6 +2,16 @@ let is_windows = null; let channels = null; + +function sendMessageToExternal(cmd) { + if (window.external !== undefined) { + return window.external.invoke(cmd); + } else if (window.webkit.messageHandlers.external !== undefined) { + return window.webkit.messageHandlers.external.postMessage(cmd); + } + throw new Error('Failed to locate webkit external handler'); +} + function addSlider(channel_name) { channels.insertAdjacentElement( 'beforeend', @@ -9,19 +19,19 @@ function addSlider(channel_name) { ); document.getElementById(channel_name+"_slider") .addEventListener(is_windows?'change':'input',function(){ - window.webkit.messageHandlers.external.postMessage("change_volume:"+channel_name+":"+this.value); + sendMessageToExternal("change_volume:"+channel_name+":"+this.value); }, false ); document.getElementById(channel_name+"_skip_button") .addEventListener('click',function(){ - window.webkit.messageHandlers.external.postMessage("skip_current_sound:"+channel_name); + sendMessageToExternal("skip_current_sound:"+channel_name); }, false ); document.getElementById(channel_name+"_play_pause_button") .addEventListener('click',function(){ - window.webkit.messageHandlers.external.postMessage("play_pause:"+channel_name); + sendMessageToExternal("play_pause:"+channel_name); }, false ); @@ -151,7 +161,7 @@ function createError(name, text) { } function thresholdSelect(channel_name, value) { - window.webkit.messageHandlers.external.postMessage("change_threshold:"+channel_name+":"+value); + sendMessageToExternal("change_threshold:"+channel_name+":"+value); } function main() {