Eksperymentowałem z CefGlue w C # ostatnio szczególnie z JS> Natywnej integracji.

Próbowałem 3 podejść, ale nie wydaje się być właściwe.

  1. Dzięki XHR i niestandardowym schemehandler - ogólnie świetny, ale wydaje się blokować zarówno renderujący, jak i przeglądarkę do długotrwałych zadań.
  2. Przez połączenia zwrotne V8 - niesamowite, ale blokuje renderujący na długie zadania
  3. Poprzez cefquery aka asynchroniczne wiązania - nie blokuje renderowania ani przeglądarki, ale nie wydaje się mieć wsparcia do przekazywania żadnych parametrów.

Mam trywialny wymóg, jaki wydaje się.

  1. Egzekucja asynchroniczna I.E. Ani przeglądarka, ani renderier mają zablokować na dłuższych zadaniach.
  2. Muszę przekazać parametry i przetwarzać wartości zwracane w JavaScript.

Czy istnieje cecha CefGlue, którą mogę eksperymentować z tym, pozwoli mi osiągnąć to zadanie?

Dzięki.

3
Moonwalker 13 sierpień 2014, 00:08

2 odpowiedzi

Najlepsza odpowiedź

Opublikowałem odpowiedź na moje pytanie dotyczące Google CEF Group. Rozwiązanie działa całkiem dobrze.

Grupa Google CEF.

4
Moonwalker 18 październik 2014, 14:51

Rozwiązaniem dla tego jest ponowne wykorzystanie hydrauliki AJAX wbudowaną w osadzony w chromu.

CEF jest zbudowany z chromu, więc wszystko jest ukierunkowane na aplikację klienta komunikując się z serwerem. Jeśli konstruujesz swój kod internetowy komunikowanie się z kodem C #, aby wyglądać tak, możesz ponownie wykorzystać wiele najlepszych praktyk z tworzenia stron internetowych.

Możliwe jest wdrożenie serwera internetowego w procesie i użycie, który obsługuje zarówno żądania stron, jak i żądania AJAX, które mogą ułatwić komunikację z kodem C #.

Wdrożyłem to na projekt w pracy, który otwieramy pochodzę. GitHub

Sposób, w jaki pracuje, jest dość proste:

  • Utwórz serwer HTTP, który działa w pamięci. Używamy tego dla tego Owina.
  • Utwórz wdrożenie Irequesthandler, który przechwytuje wszelkie żądania do znanej domeny i zamiast tego służy z wewnętrznego serwera WWW. Zobacz naszą Tutaj .

Korzystanie z Owina pozwala na warstwę wieloma firmami i bibliotek, które ułatwiają zbudowanie aplikacji. Rzeczy takie jak API Web sprawiają, że jest trywialny dla aplikacji hostowanej w ramce CEF, aby komunikować asynchronicznie z kodem C # za pośrednictwem JSON. Nie używamy tego w minuciu i używamy wiązań JavaScript, ale użycie AJAX do Webapi jest lepsze.

1
Kevin Boyle 29 sierpień 2014, 12:56