2013-01-30 24 views
17

Dotyczy to aplikacji offline HTML5 na urządzeniach z Androidem.Aplikacja offline HTML5 na urządzeniach z systemem Android

Biegniemy do problemu gdzie bookmarking zdolny aplikacja HTML5 zalogowany (z pełną cache pliku manifestu) nie można załadować na Androida przeglądarce pod następującymi warunkami:

  1. Zaznacz aplikacja w przeglądarce
  2. wyłączyć wszystkie połączenia bezprzewodowe
  3. Zamknij przeglądarkę całkowicie
  4. Spróbuj uruchomić zakładkę z ekranu głównego

Otrzymujemy komunikat "Nie można połączyć się z Internetem". Aplikacja działa doskonale na urządzeniach z systemem iOS po zapisaniu na ekranie głównym iw trybie samolotowym.

Czy istnieje określony sposób zapisywania aplikacji, czy jest to specyficzne dla systemu Android działanie?

+3

jakiej przeglądarki używasz? domyślna przeglądarka dla Androida? – Markasoftware

+0

Czy możesz dodać link do swojej witryny? Z jaką wersją Androida testujesz to? Mam aplikację internetową offline i działa zgodnie z oczekiwaniami. – Stephen

+0

Tak, widzimy to w domyślnej przeglądarce Androida. – Luthfur

Odpowiedz

1

Jaka jest nazwa pliku manifestu pamięci podręcznej? Słyszałem, że rozszerzenie może wpłynąć na zachowanie androida. Upewnij się, że plik kończy

Ponadto, upewnij się, że serwer jest poprawnie obsługujących typ MIME dla plików manifestu, który jest text/cache-manifest

+0

Potrafi potwierdzić, że oba te argumenty są prawdziwe i nadal nie pozwalają prawidłowo działać na urządzeniach z Androidem – bijanv

5

bym sprawdzić i zobaczyć, że:

  1. MIME typ naprawdę jest text/cache-manifest.
  2. Twój manifest cache zaczyna się od CACHE MANIFEST, twoje adresy URL są następnie względne w stosunku do manifestu lub bezwzględnych adresów URL.
  3. Nie masz żadnych niedziałających linków w swoim manifeście lub wymuszonym znaczniku NETWORK:.
+0

Dzięki Ben, okazuje się, że używamy wymuszonego tagu NETWORK. Wypróbuję to bez tagu i zobaczę, jak to działa. – Luthfur

+0

Więc ...... Powodzenia? –

1

Oprócz Ben Max Rubinstein i odpowiedzi Compid, o ile aplikacja url jest coś takiego: example.com/myapp trzeba dodać następujące ukośnik, tak: example.com/myapp/.

Gdy jesteś online, serwer przekieruje Cię automatycznie, ale jeśli jesteś w trybie offline, to oczywiście nie może się zdarzyć.

2

Tak, miałem do czynienia z podobnym issues with chrome i Androidem na wielu instancjach. Najwyraźniej nie ma problemu z implementacją, ponieważ próbowałem go na FF i działało dobrze, i to samo dotyczyło safari. Jedyną rzeczą, którą przypuszczam, jest to spowodowane tym, że dane pobierają pamięć podręczną dla strony internetowej w pamięci RAM, gdy jest uruchomiony chrome. Jeśli zamkniesz przeglądarkę, a Android zakończy proces, nowa instancja chrome zostanie zainicjalizowana, a istniejące dane aplikacji znikną. Nie mogę tego potwierdzić, ale wydaje się bardzo prawdopodobne, że to może być problem.

również sprawdzić swój serwer jest skonfigurowany do wysyłania typ MIME poprawnie: How to set up your server to send the correct MIME types

1

Co natknąłem było to, że plików w konfiguracji Apache mime.types został prawidłowo ustawiony text/cache-manifest a następnie kilka linii niżej został zastąpiony jako application/x-ms-application (dla zgodność z programem ClickOnce firmy MS).Aby rozwiązać ten problem, podjąłem inną końcówkę nazwy pliku, a mianowicie .cachemanifest, poprawnie skonfigurowałem jej typ MIME, zrestartowałem Apache, zmieniono nazwę pliku manifestu na cache.cachemanifest, zmieniłem mój atrybut manifestu <html>, aby wskazywało na ten plik, a następnie w końcu mogłem Pamięć podręczna mojej aplikacji internetowej na Androida (nie było żadnego problemu w przeglądarkach komputerowych, które najwyraźniej nie dbają o plik manifestu pamięci podręcznej typu MIME). Mam nadzieję że to pomoże.

Powiązane problemy