- Angularjs send/recieve messages electron
WT форуми -> HTML / Javascript / CSS -> Angularjs send/recieve messages electron
Създайте нова тема Напишете отговор 
Автор Съобщение
vasilev
Потребител
Потребител

Регистриран на: 07/02/2009 2:41 pm

Support: 24
Bonus: 45
Мнения: 619
Мнение 23/11/2019 10:59 am     Angularjs send/recieve messages electron Отговорете с цитат


Здравейте,
Имам едно уеб приложение което искам да направя native с електрон.
Използвам angularjs за get/ post заявки към php.
Трябва да го направя с messages , но не мога да намеря за angularjs нищо по темата.
Някой да е правил подобно нещо ?
В електрон се използва ipcrenderer но въпроса е в angularjs как ..



Мерси !
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 57
Bonus: 114
Мнения: 777
Мнение 23/11/2019 1:06 pm      Отговорете с цитат


Не съм използвал нито едно от двете, но като чета документацията на Electron за messages, се опитвам да разбера защо навръзваш angularjs с това как electron оперира между процесите?

П.П. По това, което чета, на теб ти трябва listener на ipcMain да слуша за събитие, което трябва да накара angularjs да си изпрати request-а и след това, върнатия резултат, можеш да пратиш обратно на renderer-а отново чрез събитие.

Каква е точно идеята ти?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
vasilev
Потребител
Потребител

Регистриран на: 07/02/2009 2:41 pm

Support: 24
Bonus: 45
Мнения: 619
Мнение 24/11/2019 8:54 pm      Отговорете с цитат


Здравей,
Може и да говорим за същото, не съм сигурен Smile
Трябва да мигрираме php то което всъщност вика java с json argument и връща друг json. С angularjs съм направил самото приложение и се надявах само това да сменя - angularjs да комуникира с electron с post или get заявка..

В angularjs имам:

Javascript code:
$http({ method: 'GET', headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=utf-8'
},
url: './assets/data/info.json'
}).then(function successCallback(response) {
if(response.data.success=="yes"){
$scope.data=response.data;
} else { alert("problem getting the data"); }
});
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 57
Bonus: 114
Мнения: 777
Мнение 25/11/2019 2:48 am      Отговорете с цитат


За себе си просто искам да структурирам нещата малко.

Имаш следното:

1. API - PHP базиран, който на определени endpoints комуникира с друго API, което е Java базирано.
2. Уеб приложение - Angular базирано, което прави AJAX рекуести към PHP API-то и получава някакъв response.

От това, което разбирам е, че уеб приложението, което е писано на Angular трябва да се мигрира към нативно приложение посредством Electron?
Т.е. PHP и Java АПИ-тата си остават същите?

Това, което ти мисля, че е следното. До колкото разбирам Електрон, workflow-а му е следния:

Renderer -> Main -> Renderer

т.е. на теб ти трябват поне 3 събития

1. Регистрираш събитие в ipcMain, което трябва да стартира дадения от теб angularjs код, когато бъде извикано събитието.
Да речем:
Javascript code:

ipc.on("update", (e, args) => {
// angular ajax request
// при успех, трябва да върнеш response-а към рендерера отново
// чрез събитие
ipc.send("response-received", args);
});


2. В ipcRenderer трябва да регистрираш някакво събитие. Кликане на бутон, промяна на select меню или нещо подобно. Стандартно събитие в JS. За примера, да речем, че е кликане на бутон.
2.1. Когато бутона се кликне, трябва да тригърне т.1
Javascript code:

btn.addEventListener("click", (e) => {
// нещо подобно. Както виждаш, тригърва събитие с име, което
// регистрирах в т.1
ipc.send("update", "някакъв-аргумент-тук");
});


3. В ipcRenderer регистрираш друго събитие. ipc събитие този път, което ще наречем response-received.
Javascript code:

ipc.on("response-received", (e, args) => {
// тука ъпдейтваш някой елемент в HTML-а или нещо подобно.
});


Кода може би не е точен, по документация, но се надявам, че схващаш идеята каква е.

Съжалявам, ако не съм разбрал правилно проблема ти.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
vasilev
Потребител
Потребител

Регистриран на: 07/02/2009 2:41 pm

Support: 24
Bonus: 45
Мнения: 619
Мнение 25/11/2019 11:31 am      Отговорете с цитат


здравей,
благодаря за отговора.
да идеята е тази но, да се разкара PHP - то .
то в момента работи като backend .. трябва да го разкарам и мигрирам на електрон.
в main.js е ясно да - за ipcRenderer.
това което не намирам е какво да напиша в angularjs там където използвам ПОСТ/ГЕТ заявка в момента.
намирам само :

https://github.com/develephant/ngElectron

тоест трябва да използвам допълнителен модул.
въпроса е дали няма нещо което да използвам от angularjs а не да вкарвам допълнителни модули.

Или ipc e стандартна функция която може да ползвам без да описвам в angularjs също ?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 57
Bonus: 114
Мнения: 777
Мнение 25/11/2019 10:44 pm      Отговорете с цитат


Ами не виждам или не разбирам цялостната идея на Angular тука. Ако целта е само да го използваш, колкото да изпратиш заявка и да получиш отговор, е безсмислено.

Ако искаш целия Електрон да се управлява посредством Angular - контролери, вюта и прочие - най-вероятно ще ти трябва някакъв модул.

За съжаление повече не мога да помогна. Отговорите ми бяха базирани на малко четене по документацията на Електрон.


П.П. Погледни този boilerplate. Може да ти дойде идея какво трябва да направиш.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
vasilev
Потребител
Потребител

Регистриран на: 07/02/2009 2:41 pm

Support: 24
Bonus: 45
Мнения: 619
Мнение 26/11/2019 2:41 pm      Отговорете с цитат


Ще трябва да мина на angular. Явно с angularjs няма как да стане..
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> HTML / Javascript / CSS Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети