2021-08-01 20:13:14 +10:00
|
|
|
/*
|
|
|
|
|
_ __ _ __
|
|
|
|
|
| | / /___ _(_) /____
|
|
|
|
|
| | /| / / __ `/ / / ___/
|
|
|
|
|
| |/ |/ / /_/ / / (__ )
|
|
|
|
|
|__/|__/\__,_/_/_/____/
|
2021-08-27 21:11:03 +10:00
|
|
|
The electron alternative for Go
|
2021-08-01 20:13:14 +10:00
|
|
|
(c) Lea Anthony 2019-present
|
|
|
|
|
*/
|
|
|
|
|
/* jshint esversion: 6 */
|
|
|
|
|
|
|
|
|
|
/**
|
2021-10-04 19:42:22 +11:00
|
|
|
* WailsInvoke sends the given message to the backend
|
2021-08-01 20:13:14 +10:00
|
|
|
*
|
|
|
|
|
* @param {string} message
|
|
|
|
|
*/
|
2021-09-14 20:24:14 +10:00
|
|
|
|
2021-10-04 19:42:22 +11:00
|
|
|
(function () {
|
|
|
|
|
// Credit: https://stackoverflow.com/a/2631521
|
|
|
|
|
let _deeptest = function (s) {
|
|
|
|
|
var obj = window[s.shift()];
|
|
|
|
|
while (obj && s.length) obj = obj[s.shift()];
|
|
|
|
|
return obj;
|
|
|
|
|
};
|
2021-10-18 22:02:23 +11:00
|
|
|
let windows = _deeptest(["chrome", "webview", "postMessage"]);
|
2021-11-29 20:04:38 +11:00
|
|
|
let mac_linux = _deeptest(["webkit", "messageHandlers", "external", "postMessage"]);
|
2021-09-14 20:24:14 +10:00
|
|
|
|
2021-11-29 20:04:38 +11:00
|
|
|
if (!windows && !mac_linux) {
|
2021-09-15 22:50:39 +10:00
|
|
|
console.error("Unsupported Platform");
|
2021-10-18 22:02:23 +11:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (windows) {
|
|
|
|
|
window.WailsInvoke = (message) => window.chrome.webview.postMessage(message);
|
|
|
|
|
}
|
2021-11-29 20:04:38 +11:00
|
|
|
if (mac_linux) {
|
2021-10-18 22:02:23 +11:00
|
|
|
window.WailsInvoke = (message) => window.webkit.messageHandlers.external.postMessage(message);
|
2021-08-01 20:13:14 +10:00
|
|
|
}
|
2021-10-04 19:42:22 +11:00
|
|
|
})();
|