|
@@ -9,6 +9,46 @@ pub fn handler<T: 'static>(webview: &mut WebView<'_, T>, arg: &str) -> bool {
|
|
|
Err(_) => false,
|
|
|
Ok(command) => {
|
|
|
match command {
|
|
|
+ Init {} => {
|
|
|
+ webview
|
|
|
+ .handle()
|
|
|
+ .dispatch(move |_webview| {
|
|
|
+ _webview
|
|
|
+ .eval(&format!(
|
|
|
+ "window['{queue}'] = [];
|
|
|
+ window['{fn}'] = function (payload, salt, ignoreQueue) {{
|
|
|
+ window.tauri.promisified({{
|
|
|
+ cmd: 'validateSalt',
|
|
|
+ salt: salt
|
|
|
+ }}).then(function () {{
|
|
|
+ const listeners = (window['{listeners}'] && window['{listeners}'][payload.type]) || []
|
|
|
+
|
|
|
+ if (!ignoreQueue && listeners.length === 0) {{
|
|
|
+ window['{queue}'].push({{
|
|
|
+ payload: payload,
|
|
|
+ salt: salt
|
|
|
+ }})
|
|
|
+ }}
|
|
|
+
|
|
|
+ for (let i = listeners.length - 1; i >= 0; i--) {{
|
|
|
+ const listener = listeners[i]
|
|
|
+ if (listener.once)
|
|
|
+ listeners.splice(i, 1)
|
|
|
+ listener.handler(payload)
|
|
|
+ }}
|
|
|
+ }})
|
|
|
+ }}",
|
|
|
+ fn = crate::event::emit_function_name(),
|
|
|
+ listeners = crate::event::event_listeners_object_name(),
|
|
|
+ queue = crate::event::event_queue_object_name()
|
|
|
+ ))
|
|
|
+ .unwrap();
|
|
|
+
|
|
|
+ Ok(())
|
|
|
+ })
|
|
|
+ .unwrap();
|
|
|
+
|
|
|
+ },
|
|
|
#[cfg(any(feature = "all-api", feature = "readTextFile"))]
|
|
|
ReadTextFile {
|
|
|
path,
|