Pytanie Czy Cordova / PhoneGap obsługuje tylko aplikacje mobilne na jedną stronę


Po przeczytaniu tutoriali wciąż czuję się zagubiony. Czy muszę dołączyć cordova.js i zainicjować app.initialize (); na każdej pojedynczej stronie? Lub tak długo, jak załadowany jest plik index.html, nie musiałbym włączać cordova.js i inicjować go na żadnych innych stronach?


11
2018-01-01 15:36


pochodzenie


musisz dołączyć cordova.js na każdej stronie ... - Vicky Gonsalves
@VickyGonsalves i Czy muszę zadzwonić do app.initialize (); na każdej stronie? - Franva
Aplikacje na jedną stronę to "najlepsza praktyka". Tak, jeśli przejdziesz na inną stronę, musisz ponownie załadować wszystko, dlatego najlepiej jest używać jednej strony. Czujesz się bardziej natywnie dzięki aplikacjom na jedną stronę. - Dawson Loudon
Tak, nie używaj wielu stron. Prawdopodobnie nie dostaniesz aplikacji do sklepu AppStore, jeśli korzystasz z wielu stron - pppontusw
A więc jak działa przycisk "Wstecz"? - Captain Kenpachi


Odpowiedzi:


To zależy! Jeśli używasz Cordova w połączeniu z jQM lub jakimkolwiek innym podobny do ajax frameworków, NIE jest konieczne ładowanie cordova.js na każdej stronie. Trzeba tylko załadować go do pliku index.html i pozostanie on dostępny, nawet jeśli zmienisz stronę w innym html.

Powodem jest to, że w jQM rzeczy są ładowane w ajax jak moda i pozostają w DOM, dlatego biblioteka cordova jest dostępna przez życie DOM. Jeśli umieścisz cordova.js na każdej stronie, będziesz mieć wiele deklaracji i może to prowadzić do problemów. Bądź tego świadomy.

Pracowałem w aplikacji, używając aplikacji na jednej stronie, każdej strony w niezależnym kodzie HTML, co było korzystne dla naszych celów w celu zapewnienia możliwości pracy i pozwalało innym osobom pracować na innych stronach bez bałagania wszystkich w jednym pliku. Właśnie ładujemy cordova i inne popularne biblioteki w index.html i wszystko działa poprawnie. W przypadku konkretnych stron, które wymagają specjalnego kodu, ładuję wymagane skrypty dla każdej strony, więc kod biblioteki nie pozostaje w DOM, gdy inne strony modyfikuję, aby DOM był jak najlżejszy i czysty.

Jeśli chcesz dodać cordova na każdej stronie, po prostu bądź świadomy, że najpierw sprawdź, czy biblioteka nie jest jeszcze załadowana. Polecam mu sprawdzenie zdarzenia na wszystkich stronach, aby zachować bezpieczeństwo.

Pojedyncza lub wielostronicowa decyzja dotycząca rozwoju aplikacji zależy od Twoich potrzeb i sytuacji.


4
2018-01-02 17:33



Cześć VicM, dziękuję za odpowiedź, to naprawdę pomocne. Kiedy mówisz: używając Cordova w połączeniu z jQM, nie muszę ładować Cordova na każdej stronie, ponieważ pozostają one w DOM ... "Tak, moje pytanie brzmi: Jak umieścić Cordova w DOM z jQM? proszę podać mi pełny przykład? Dzięki - Franva
Po prostu umieść ją tak, jak każdą inną bibliotekę js, tak jak robisz to na dowolnej stronie internetowej na stronie indeksu, to wszystko. Używanie tagu HTML <script ....> </ script>. Nie jestem przy moim komputerze, ale daj mi znać, jeśli będziesz potrzebował dalszej pomocy. - VicM
Nadal mam wątpliwości co do mechanizmu leżącego u jego podstaw. Jeśli używam jQM z Cordova, w jaki sposób jQM przechowuje funkcje, wtyczki w swoim DOM? A gdzie jest DOM po przejściu na inną stronę? Jedna strona HTML ma jeden DOM, więc jak druga strona zna DOM na pierwszej stronie? - Franva
Gorąco polecam lekturę dokumentacji jQM (podstawy) oraz podstawowego DOM-a, aby to zrozumieć. Jest to szerokie pytanie, ale musisz to wyjaśnić. Najlepszym rozwiązaniem dla Ciebie jest rozpoczęcie kodowania czegoś prostego i przeczytanie dokumentu, abyś mógł w pełni zrozumieć, co się dzieje. - VicM
Postaram się wskazać ci konkretne strony, gdy je znajdę, tymczasem warto przeczytać o DOM. - VicM


W urządzeniach mobilnych szalenie jest ładować wszystko za każdym razem, zwłaszcza jeśli nie ma połączenia z internetem.

Spójrz na to, to bardzo prosty sposób na zbudowanie aplikacji modułowej z jednym tylko html: https://github.com/charnekin/api


3
2018-01-02 01:35



thx mate:) ~~~~~ - Franva


Tak. Na każdej stronie musisz umieścić cordova.js. Chociaż nie musisz subskrybować wydarzeń związanych z Cordowią na każdej stronie, jeśli nie potrzebujesz dostępu do funkcji specyficznych dla urządzenia na tej stronie i możesz użyć zwykłych stron HTML z kombinacjami JS i CSS. Chociaż jest to możliwe, nie jest to zalecany sposób robienia rzeczy w aplikacjach Cordova, ponieważ za każdym razem, gdy przejdziesz do nowej strony, użytkownik to zauważy. Najlepszą praktyką Cordova jest stosowanie aplikacji na jedną stronę i nie używanie wielu stron dla różnych ekranów.

Możesz spojrzeć na artykuł pod linkiem http://floatlearning.com/2011/03/developing-better-phonegap-apps/ dla innego zestawu dobrych rad, które biorą pod uwagę, gdy rozpoczynają pracę z Cordova


2
2018-01-01 19:58



Bardzo dziękuję za odpowiedź. Po przeczytaniu odpowiedzi przychodzi mi do głowy kolejne pytanie: jeśli zachowamy wszystkie "strony" na jednej stronie, to strona będzie coraz większa i trudniejsza do utrzymania. Jakie jest rozwiązanie tego problemu? - Franva
Czy znasz html + javascript + css module / layout / framework, który może uprościć złożoność pojedynczej strony? W jaki sposób pokazujesz tranzyt różnych "stron" / widoków na jednej singlowej stronie HTML? - Franva
Dobrą praktyką byłoby ładowanie spakowanego HTML dla stron / widoków przy użyciu AJAX i dynamiczne wprowadzanie ich do DOM. To powinno pomóc w przepływie przeglądarek. Możesz użyć jQuery Mobile (jquerymobile.com) jeśli potrzebujesz podstawowego interfejsu użytkownika. Jeśli potrzebujesz ciężkiej grafiki i animacji, prawdopodobnie Zepto (zeptojs.com) jest bardzo dobrym wyborem do zastąpienia jQuery. - codevision
thx, uczę się ich teraz :) - Franva