Pracuję nad aplikacją internetową, która potrzebuje danych, które może uzyskać tylko z zainstalowanej lokalnie przeglądarki natywnej aplikacji.
Jak poruszać się po obszarze izolowanym przeglądarki, aby móc komunikować się (bezpiecznie, ponieważ dane są potencjalnie wrażliwe), z aplikacją natywną.
W jedynym przykładzie, który znalazłem, użytkownik ręcznie przenosił między tokenami niektóre tokeny i pliki, co jest okropnym doświadczeniem użytkownika, którego chciałbym uniknąć.
web-applications
Zak Kus
źródło
źródło
Odpowiedzi:
Możesz osadzić serwer WWW w natywnej aplikacji, a następnie twój klient może wykonywać do niego połączenia za pomocą zakodowanych na stałe linków do http: // localhost / xyz (możesz się martwić o ostrzeżenia o skryptach między witrynami i / lub uruchomić serwer na porcie innym niż http). Jeśli korzystasz z gniazd internetowych, Twoja natywna aplikacja może nawet przesyłać dane do przeglądarki internetowej, gdy tylko przeglądarka zainicjuje komunikację.
Robię to lokalnie, wbudowany kontroler przeglądarki internetowej żąda danych wizualizacji z niestandardowego serwera WWW, a podczas programowania uruchamiam oba na tym samym komputerze.
Istnieje wiele małych i wydajnych wbudowanych serwerów WWW dla C / C ++ (Mongoose, NxWeb, civetweb itp.), C # zwykle dąży do pełnego serwera WCF, python zawiera mały serwer WWW IIRC.
źródło
Istnieje kilka sposobów łączenia aplikacji natywnej i aplikacji przeglądarki.
Możesz osadzić przeglądarkę w natywnej aplikacji, podobnie jak aplikacje PhoneGap na urządzeniach mobilnych. To pozwoli ci rozszerzyć silnik javascript przeglądarki i będziesz mógł wykonywać połączenia między nimi.
Możesz też przemyśleć swoją architekturę. Niech zarówno aplikacja natywna, jak i przeglądarka używają serwera jako pośrednika. Tak więc zarówno przeglądarka, jak i natywna aplikacja komunikują się tylko z serwerem WWW, który przekazuje informacje między nimi w razie potrzeby.
Lub jeśli potrzebujesz natywnej funkcjonalności ... po prostu stwórz pojedynczą aplikację natywną.
Nie polecam podejścia „lokalnego serwera WWW” do niczego innego niż aplikacje działające w kontrolowanych środowiskach. Jeśli twoje oprogramowanie jest przeznaczone do instalowania i uruchamiania na komputerach użytkowników końcowych przy minimalnych wymaganiach dotyczących wsparcia, znajdziesz rozwiązanie wielu problemów związanych z zaporą ogniową i oprogramowaniem antywirusowym.
źródło