This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Интеграция CEF на React.

Harvey Specter

Специалист
BackEnd developer
7 Ноя 2020
243
88
95
Здравствуйте господа. Хотел поинтересоваться у ребят которые уже занимались написанием CEF'а на React для клиентки. Как вы вызываете или передаёте данные в CEF?
 

hecate

Участник портала
2 Мар 2023
18
5
5
Первый вариант
JavaScript:
// На клиенте

let _browser = mp.browsers.new('http://package/cef/index.html');
_browser.call('eventName', 'arg1', 'arg2');

// На CEF

window.mp.events.add('eventName', (arg1, arg2) => {
    // todo
});

Второй вариант


JavaScript:
// На клиенте

let _browser = mp.browsers.new('http://package/cef/index.html');
let _data = {
    name: 'andrey',
    surname: 'hecate
};

_browser.execute(`test(${JSON.stringify(_data)})`);

// На CEF

global.test = (data) => {
    let _data = JSON.parse(data);
    console.log(`Name: ${_data.name}\nSurname: ${_data.surname}`);
};
 
Последнее редактирование:

iuvis

Начинающий специалист
6 Мар 2022
139
50
91
А для чего нужна stringify-обёртка?
 

Mr.Scalise

Специалист
7 Окт 2021
447
88
90
А для чего нужна stringify-обёртка?
Точно не уверен, но слышал про то, что многие значения передаваться могут не правильно. Всё равно где-то нужно парсить, конвертировать, но не работал с реактом, не могу говорить наверняка
 

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,594
2,750
219
Передавать можно только строчку.
 

hecate

Участник портала
2 Мар 2023
18
5
5
А для чего нужна stringify-обёртка?
Если Вы взглянете внимательней, я передаю строку
JavaScript:
_browser.execute(`test(${JSON.stringify(data)})`);
Из-за того, что можно передавать только строку, мне нужно после каждого аргумента поставить запятую, которая "как-бы" разделяет один аргумент от другого, таким образом я получаю нужный эффект и отправляю его в функцию.

Подробнее о сериализации данных можно почитать тут: тык

UPD: Забыл написать еще, что я передаю объект с name и surname, лучше всего будет преобразовать в строку и передать её, далее запарсить и достать нужные данные
 
Последнее редактирование:

Harvey Specter

Специалист
BackEnd developer
7 Ноя 2020
243
88
95
Спасибо.