Приветствую.
Давай так. Я Просто опишу картину в целом.
У нас есть "Игровой клиент" И у этого клиента, есть возможность создать простой "Браузер"(На самом деле это как открыть вкладку в браузере и перейти по ссылке на свое приложение.) Что ты собственно и делаешь в части кода:
JavaScript:
const newBrowser = mp.browser.new("package://cef/dist/index.html");
Если абстрагироваться от гта, то отправлять весь исходный код на сервер где крутится сайт не самая крутая идея. Верно?
Поэтому всё что нужно отправить на сайт, это билд проекта.
Теперь вернемся к нашей игре и способам взаимодействия между игровым клиентом и браузером.
Есть два способа взамодействия клиент -> браузер
1) Использования .execute():
Код:
newBrowser.execute('console.log(2+3)');
этот способ просто выполняет код который мы ему передаем, как будто мы работаем с консолью во вкладке браузера через F12;
2) Использование событий. Тут немного сложнее:
Дело в том, что в создаваемом браузере есть объект mp, через который мы и можем начать взаимодействовать с нашей игрой.
Мы можем как и на клиенте, создавать события.
Допустим я хочу также вывести console.log как в предыдущем примере.
мне необходимо зарегистрировать событие на стороне браузера:
JavaScript:
//script.js подключенный к index.html
mp.events.add("eventName", ()=>console.log(2+3));
После того как эвент зарегистрирован, я могу его вызвать:
Код:
newBrowser.call("eventName");
Как видим, все просто.
И так разобрались как взаимодействовать клиенту с браузером.
Теперь в обратную сторону, браузер -> клиент
Тут один способ:
JavaScript:
mp.trigger('eventNameInClient', arg1, arg2...)
Этим способом мы вызываем евент который создан на стороне клиента.