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.
- 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ń.
- Przez połączenia zwrotne V8 - niesamowite, ale blokuje renderujący na długie zadania
- 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ę.
- Egzekucja asynchroniczna I.E. Ani przeglądarka, ani renderier mają zablokować na dłuższych zadaniach.
- 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.
2 odpowiedzi
Opublikowałem odpowiedź na moje pytanie dotyczące Google CEF Group. Rozwiązanie działa całkiem dobrze.
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.
Podobne pytania
Nowe pytania
c#
C # (wymawiane „patrz ostro”) jest językiem programowania wysokiego poziomu, statycznie typowanym, wieloparadygmatowym opracowanym przez firmę Microsoft. Kod C # zwykle jest przeznaczony dla rodziny narzędzi Microsoft .NET i czasów wykonywania, do których należą między innymi .NET Framework, .NET Core i Xamarin. Użyj tego tagu w przypadku pytań dotyczących kodu napisanego w C # lub C # formalnej specyfikacji.