github.com/secoba/wails/v2@v2.6.4/internal/frontend/runtime/desktop/ipc.js (about) 1 /* 2 _ __ _ __ 3 | | / /___ _(_) /____ 4 | | /| / / __ `/ / / ___/ 5 | |/ |/ / /_/ / / (__ ) 6 |__/|__/\__,_/_/_/____/ 7 The electron alternative for Go 8 (c) Lea Anthony 2019-present 9 */ 10 /* jshint esversion: 6 */ 11 12 /** 13 * WailsInvoke sends the given message to the backend 14 * 15 * @param {string} message 16 */ 17 18 (function () { 19 // Credit: https://stackoverflow.com/a/2631521 20 let _deeptest = function (s) { 21 var obj = window[s.shift()]; 22 while (obj && s.length) obj = obj[s.shift()]; 23 return obj; 24 }; 25 let windows = _deeptest(["chrome", "webview", "postMessage"]); 26 let mac_linux = _deeptest(["webkit", "messageHandlers", "external", "postMessage"]); 27 28 if (!windows && !mac_linux) { 29 console.error("Unsupported Platform"); 30 return; 31 } 32 33 if (windows) { 34 window.WailsInvoke = (message) => window.chrome.webview.postMessage(message); 35 } 36 if (mac_linux) { 37 window.WailsInvoke = (message) => window.webkit.messageHandlers.external.postMessage(message); 38 } 39 })();