2015-02-03 10 views
5

Jak mogę się dowiedzieć, która wersja to moja aplikacja Cordova? Potrzebuję tych informacji, aby wyświetlić je na ekranie Informacje.W mojej aplikacji Cordova, w jaki sposób uzyskać ciąg wersji zdefiniowany w pliku config.xml?

Czy można odczytać plik config.xml i uzyskać ciąg wersji, który już utrzymuję w tym pliku?

<widget ... version="0.0.1" ... 

Chciałbym mieć rozwiązanie tam, gdzie nie muszę utrzymywać numeru wersji aplikacji w kilku miejscach kodu. Również nie chcę wtyczki do tego celu, ponieważ większość wtyczek nie obsługuje Androida, iOS i przeglądarki jako platform.

A może nie mam atrybutu wtyczki głównej?

Czy istnieje rozwiązanie, w którym utrzymuję jeden plik, który nie jest plikiem config.xml, a plik config.xml pobiera informacje o wersji z tego pliku?

W jaki sposób wdrażasz "informacje o wersji wyświetlanej" na ekranie swojej aplikacji? Każda wskazówka jest doceniana.

wersja My Cordova jest:

>cordova -v 
4.2.0 
+0

duplikat http://stackoverflow.com/questions/23343902/plugin-to-get-the-version-of-phonegap-app – unobf

+1

Nie, to nie jest duplikat. Nie chcę tego rozwiązania wtyczki, które zaakceptował @Kamal Reddy. To nie działa z przeglądarką jako platformą! – Strubbl

Odpowiedz

8

Jeżeli nie jesteś zainteresowany wykorzystaniem żadnej wtyczki firm trzecich do osiągnięcia tego celu, wtedy czuję Cordova haczyki to droga. Możesz wymyślić hak before_build, aby przeczytać wersję z pliku config.xml i użyć tego samego w aplikacji.

Na szczęście ten haczyk jest łatwo dostępny dla ciebie w następującej link, gdzie czytają wersję z pliku config.xml i wstrzykują ją jako zależność wszędzie tam, gdzie jest to wymagane.

Sugerujemy również zapoznanie się z oficjalną dokumentacją pod numerem cordova hooks w celu lepszego zrozumienia.

Infact, możesz także wypróbować czytanie informacji o wersji z pliku config.xml i umieścić go w dowolnym miejscu, który możesz utworzyć w swoim index.html, aby wyświetlić informacje o wersji. Można to zrobić przed budową cordova za pomocą haków, które z kolei używają pliku wsadowego Windows, który wykonuje operacje na plikach. Możesz wypróbować działającą próbkę haka cordova, która używa pliku wsadowego w moim github page.

Mam nadzieję, że to pomaga.Pozdrawiam

+2

+1 Uważam, że to idealna odpowiedź. Wolałbym, żeby hooky były nad wtyczkami dla czegoś takiego, jak gdyby zmiany Cordova nie zależały od czekania lub rozwidlenia wtyczki i modyfikowania jej do działania. Jeśli z jakiegoś powodu hak przestanie działać, pokaz nadal będzie się wyświetlał. Dam mu 48 godzin na sprawdzenie, czy są jakieś inne odpowiedzi, jeśli nie, przyznam ci nagrodę. Dzięki –

+0

Jeśli to spełnia kryteria pytania @ strubbl, proszę, aby zaakceptowali to jako odpowiedź. –

+2

Hak wydaje się obecnie najlepszym rozwiązaniem. Dziękuję za wskazanie. – Strubbl

2

Chciałbym po prostu zrobić coś takiego:

cordova.getAppVersion.getVersionNumber().then(function (version) { 
    if (!window.localStorage['version'] || window.localStorage['version'] < version) { 
     window.localStorage['version'] = version; 
    } 
}); 

ten sposób można wywołać window.localStorage['version'] gdziekolwiek jest to potrzebne.

+0

Naprawdę nie wyjaśnia w jaki sposób uzyskujesz 'cordova.getAppVersion' w pierwszej kolejności. –

+1

@WilliamIsted cordova.getAppVersion ponownie używa wtyczki cordova – Gandhi

+0

to wtyczka, która jest przestarzała, ponieważ projekt jest porzucony. ma problemy z niektórymi urządzeniami, więc nie polecam go. https://github.com/whiteoctober/cordova-plugin-app-version – Juan

0

użyć wtyczki opisać w https://github.com/whiteoctober/cordova-plugin-app-version 1 kroku: Cordova plugin dodać https://github.com/whiteoctober/cordova-plugin-app-version.git

2 etap (wytnij i wklej) Jeśli używasz jQuery lub angularjs, styl obietnica jest obsługiwany. Używać coś takiego:

cordova.getAppVersion.getVersionNumber().then(function (version) { 
    $('.version').text(version); 
}); 

Jeśli nie, przekazać funkcję callback:

cordova.getAppVersion.getVersionNumber(function (version) { 

alert(version); 
}); 

wiwaty

Powiązane problemy