2012-01-29 2 views
5

Mam problem ze skalowaniem w aplikacji PhoneGap. Mój problem jest bardzo podobny do this question. Chcę zezwolić na skalowanie użytkownika w mojej aplikacji, a ponieważ to wszystko jest UIWebView, powinien działać. Włożyłem następujący meta tag rzutni na moich lokalnych plików HTML i na zdalnym serwerze, który PhoneGap otwiera po uwierzytelnieniu:Skalowanie nie działa z PhoneGap na iPadzie/iOS 5

<meta name="viewport" content="width=device-width; user-scalable=yes; initial-scale=1; maximum-scale=5; minimum-scale=1" /> 

Mam również redagował PhoneGap.plist i ustawić EnableViewportScale na TAK. Żadne z tych ustawień nie ma żadnej różnicy. Po prostu nie mogę przeskalować stron podczas działania w PhoneGap. Nasi użytkownicy oczekują skalowania w aplikacji, ponieważ są już przyzwyczajeni do jej uruchamiania w przeglądarce. Aplikacja wyświetla pliki graficzne, PDFS, itp. I musi umożliwiać skalowanie.

używam jQuery Mobile na lokalnej stronie logowania, ale raz kierowane do obsługiwanej aplikacji ma tylko jQuery i VARIOS

Wszelkie pomysły, dlaczego PhoneGap nie pozwala moja aplikacja do skalowania ze standardowym szczyptą i gest powiększenia?

EDIT: Ok, dziwaczne zachowanie aktualizacji. Teraz skalowanie działa, a ja niczego nie zmieniłem, z wyjątkiem dodania funkcji ChildBrowser dla jednej części aplikacji. Teraz aplikacja może być skalowana. Wątpię, żeby ChildBrowser naprawdę miał z tym cokolwiek wspólnego, ponieważ mogę skalować bez użycia wtyczki ChildBrowser. Co się dzieje? Nadal chcę odpowiedzi, aby wiedzieć, dlaczego działa, ponieważ w przyszłości mogę równie dobrze stracić skalowanie w przyszłej aktualizacji, jeśli nie wiem, co spowodowało, że ten start zaczął działać.

+0

Powiązane: http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/MetaTags.html –

+0

Cóż, nie ma się co dziwić, zoom nie działa, jak się obawiałem. Wciąż nie wiem dlaczego. Cała meta wciąż tam jest. – davidethell

Odpowiedz

2

Podczas testowania skalowania oczyściłeś projekt na dowolnym etapie, używając cmd + shift + k? Przekonasz się, że plik index.html będzie przechowywany w pamięci podręcznej przez Xcode, więc za każdym razem, gdy będziesz instalować na symulatorze lub urządzeniu, powinieneś wyczyścić projekt, aby zapewnić, że najnowszy kod HTML trafi do urządzenia. Spędziłem wiele godzin na takich niewytłumaczalnych problemach, aby zdać sobie sprawę, że to właśnie buforowanie przynosi efekt.

Można to sprawdzić, ponownie wykonując zmiany, usuwając skalowanie, nie czyszcząc i wdrażając. Teraz sprawdź, czy wciąż się skaluje.

+0

Nie, nie zrobiłem tego i na pewno to przetestuję, jeśli mój index.html po prostu zapewnia funkcję logowania, a następnie przeglądarka jest przekierowywana do zewnętrznej strony, czy buforowanie będzie nadal obowiązywać? Czy jest to początkowy index.html, który ustawia skalowanie dla całej aplikacji, czy meta strony zewnętrznej decyduje o skalowaniu, gdy już tam jestem? Mam to w obu miejscach. – davidethell

+0

Niezależnie od tego, jaki dokument zostanie załadowany w danym momencie, zastosowane zostanie skalowanie. Ma to dla mnie sens, jeśli nie masz metatagu w index.html, to nie skaluje. Ale kiedy poszedłeś na stronę zewnętrzną z metatagiem, zaczęło działać skalowanie. – sciritai

+0

Tak myślę, ale tak się nie stało. Na początku dodałem metę do zewnętrznej strony bez żadnego efektu. Następnie dodałem go do lokalnego pliku index.html (którego tak naprawdę nie chcę) i to nadal nie działa. Teraz bez dalszych zmian meta działa. – davidethell

0

Być może trzeba będzie dodać obsługę widoku wielodotykowego.

Ustaw multipleTouchEnabled na YES na theWebView.