mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 00:13:30 +00:00
[HTML5] Implement JavaScript PWA update callbacks.
Allows detecting when a new version of the progressive web app service worker is waiting (i.e. an update is pending), along a function to force the update and reload all clients.
This commit is contained in:
parent
3cc72ac03f
commit
948e66c3d6
8 changed files with 119 additions and 0 deletions
|
@ -45,6 +45,7 @@
|
|||
#include <emscripten.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "api/javascript_singleton.h"
|
||||
#include "godot_js.h"
|
||||
|
||||
void OS_JavaScript::alert(const String &p_alert, const String &p_title) {
|
||||
|
@ -203,6 +204,19 @@ void OS_JavaScript::file_access_close_callback(const String &p_file, int p_flags
|
|||
}
|
||||
}
|
||||
|
||||
void OS_JavaScript::update_pwa_state_callback() {
|
||||
if (OS_JavaScript::get_singleton()) {
|
||||
OS_JavaScript::get_singleton()->pwa_is_waiting = true;
|
||||
}
|
||||
if (JavaScript::get_singleton()) {
|
||||
JavaScript::get_singleton()->emit_signal("pwa_update_available");
|
||||
}
|
||||
}
|
||||
|
||||
Error OS_JavaScript::pwa_update() {
|
||||
return godot_js_pwa_update() ? FAILED : OK;
|
||||
}
|
||||
|
||||
bool OS_JavaScript::is_userfs_persistent() const {
|
||||
return idb_available;
|
||||
}
|
||||
|
@ -226,6 +240,8 @@ OS_JavaScript::OS_JavaScript() {
|
|||
godot_js_config_locale_get(locale_ptr, 16);
|
||||
setenv("LANG", locale_ptr, true);
|
||||
|
||||
godot_js_pwa_cb(&OS_JavaScript::update_pwa_state_callback);
|
||||
|
||||
if (AudioDriverJavaScript::is_available()) {
|
||||
#ifdef NO_THREADS
|
||||
audio_drivers.push_back(memnew(AudioDriverScriptProcessor));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue