2013-04-25 10 views
11

Moja usługa tworzenia prototypów tworzy samodzielne, nie nadające się do użytku aplikacje internetowe na iOS. Czasami zamykają urządzenie podczas użytkowania.Jak zapobiegać blokowaniu urządzenia przez autonomiczne aplikacje internetowe systemu iOS?

Przycisk główny przestaje działać, aplikacja działa dalej. Poniższe informacje są wyświetlane wielokrotnie w konsoli urządzenia (odzyskane przez dołączenie do xcode).

Apr 25 14:34:57 SpringBoard[67] <Warning>: Unable to determine intended instance of com.apple.webapp. Resulting app will be undefined.

+0

Czy zapisałeś aplikację na ekranie głównym? –

+0

Tak, jest zainstalowany na ekranie głównym. –

+0

Po tym samym problemie, nagle aplikacja blokuje urządzenie, ale aplikacja nadal działa. Przycisk główny itp. Nie reaguje. Widząc ten sam komunikat o błędzie podczas dołączania do Xcode. Chciałbym usłyszeć, jeśli znajdziesz rozwiązanie. –

Odpowiedz

4

Ponieważ przyczyną tego nie jest jeszcze znana, pomyślałem, że przyczyni się mówiąc, że jestem coraz identyczny problem z aplikacji HTML5 iOS 6 z iPhone 4s. W moim przypadku aplikacja nie blokuje się (nadal działa), ale przycisk domowy przestaje działać (dokładnie tak samo jak Ty i Jens). Czas jest losowy i nie wydaje się być związany z niczym, co mogę zrobić, aby konsekwentnie go replikować. Również wtedy, gdy to się dzieje, window.orientation zawsze nieprawidłowo zgłasza tryb portretu, nawet gdy urządzenie jest fizycznie w krajobrazie (na iPhone).

UPDATE 15.12.2013
1) Detecing ten błąd: udało mi się pułapką, gdy wystąpi błąd na iPhone. Moja aplikacja działa w trybie poziomym i zwykle może w każdej chwili przełączyć się na krajobraz. Jednak aby uwięzić ten błąd, wykrywa on teraz, czy aplikacja działa na telefonie iPhone i wyświetla stronę blokady, która wymaga od użytkownika, aby uruchomiło urządzenie w orientacji poziomej. W tym czasie aplikacja sprawdza, czy żyroskop wskazuje, że urządzenie działa poprawnie w trybie poziomym, ale system Windows.orientation (nieprawidłowo) mówi, że jest portret. Dzieje się tak dopiero po uruchomieniu błędu. Tak więc mogę pokazać miły komunikat informujący użytkownika, jak odzyskać. Uwaga: ta metoda działa tylko na iPhonie ... Nie znalazłem jeszcze rozwiązania pozwalającego wykryć go na iPadzie.

2) Unikanie tego błędu: Znalazłem jeden sposób na uniknięcie problemu (przy odrobinie dodatkowej pracy). Zauważyłem, że po wyczyszczeniu sposobu działania moich programów obsługi zdarzeń problem występuje tylko w kolejnych ładowaniach aplikacji ... nie za pierwszym razem, gdy ją ładuję. Zauważyłem też, że po zamknięciu aplikacji nadal działa na "liście zadań" systemu iOS (nie wiem, jaki jest właściwy termin iOS).

Kliknij dwukrotnie przycisk strony głównej, aby wyświetlić listę zadań i przesuń ją (aby naprawdę zamknąć). Nigdy nie miałem problemu z powtarzaniem po tym. Uwaga dodatkowa: samo wykonanie restartu urządzenia nie jest wystarczające (i wydaje się, że nadal powoduje zawieszenie). A po ponownym uruchomieniu komputera zauważyłem, że będzie on na liście zadań dwukrotnie (co wydaje się błędne i być może wskazówka, co dzieje się źle w środku). W każdym razie, jeśli zrestartujesz komputer, przed uruchomieniem aplikacji upewnij się, że przejdziesz do listy zadań i najpierw usuniesz wszystkie wystąpienia aplikacji.

+0

Mam ten sam problem z moimi 4S i iOS 6. Mam nadzieję, że to jest coś, co naprawią na iOS 7. –

+0

potwierdziło, że to wciąż dzieje się na iOS 7 :( –

+0

Na iOS7 wymyśliłem sposób na powtórzenie go za każdym razem (przynajmniej dla mojej aplikacji): 1) obróć telefon do krajobrazu 2) połóż telefon płaski !! 3) uruchomienie aplikacji Oprócz zablokowania przycisku głównego, okazało się, że spowodowało to również, że detektory zdarzeń przestały działać. Ponadto blokada stanu iOS zostaje zablokowana i nie przesuwa się na górę ekranu po przełączeniu z powrotem do trybu poziomego. Jednak kiedy skomentowałem wszystkie detektory zdarzeń dla orientacji, zmiany rozmiaru, obciążenia, dotykania, niezawodności znacznie się poprawiły. Niestety nadal wisi, ale tylko 1/5 czasu, jak wcześniej. To nie jest ustalenie, ale może wskazówka. –

1

Zespół SoundJS śledzi ten problem w dół do aplikacji internetowej wejściu w tryb pełnego ekranu przy użyciu:

<meta name="apple-mobile-web-app-capable" content="yes" />

Błąd został zgłoszony do Apple (odniesienie # 15133492).

Obecnie nie mamy żadnej pracy, z wyjątkiem nie wchodzenia w tryb pełnoekranowy.

+0

Tak, to właśnie miałem na myśli przez "samodzielną aplikację internetową". Daj mi znać, jeśli Ty i Twój zespół coś zrozumiecie! –

+0

@OJay (love SoundsJS BTW!). Na iOS7 znalazłem sposób na replikę za każdym razem (przynajmniej dla mojej aplikacji): 1) Obróć telefon do krajobrazu. 2) połóż telefon na płasko! 3) uruchom aplikację. Oprócz blokady przycisku głównego, okazało się, że spowodowało to również, że detektory zdarzeń przestały działać. Ponadto pasek stanu iOS zostaje zablokowany i nie przechodzi na górę ekranu po przejściu do trybu poziomego. Jednak kiedy skomentowałem wszystkie moje niezawodności słuchaczy zdarzeń znacznie się poprawiłem! Niestety nadal wisi, ale tylko 1/5 czasu, jak wcześniej. To nie jest ustalenie, ale może wskazówka. NAPRAWDĘ, mam nadzieję, że jabłko zareaguje na twój błąd. –

Powiązane problemy