2015-02-03 4 views
5

Wie finde ich heraus, welche Version meine Cordova App ist? Ich brauche diese Informationen, um sie in einem Info-Bildschirm anzuzeigen.Wie erhalte ich in meiner Cordova-App den Versions-String, den ich in der Datei config.xml definiert habe?

Ist es möglich, die Datei config.xml zu lesen und den Versions-String zu erhalten, den ich bereits in dieser Datei pflege?

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

Ich möchte eine Lösung haben, wo ich muss der App-Versionsnummer an mehreren Stellen im Code nicht halten. Ich möchte auch kein Plugin für diesen Zweck, weil die meisten Plug-ins Android, iOS und Browser als Plattformen nicht unterstützen.

Oder übersehe ich ein Core-Plugin-Attribut?

Oder gibt es eine Lösung, wo ich eine Datei verwalten, die keine config.xml ist, und die config.xml die Versionsinformationen aus dieser Datei erhält?

Wie implementieren Sie "Anzeigeversionsinfo" im Bildschirm Ihrer App? Jeder Hinweis wird geschätzt.

Meine Cordova Version ist:

>cordova -v 
4.2.0 
+0

Duplikat von http://stackoverflow.com/questions/23343902/plugin-toget-the-version-of-phonegap-app – unobf

+1

Nein, es ist kein Duplikat. Ich will diese Plugin-Lösung nicht, die @Kamal Reddy akzeptiert. Dies funktioniert nicht mit dem Browser als Plattform! – Strubbl

Antwort

8

Wenn Sie bei der Verwendung von Drittanbieter-Plugin nicht interessiert sind, dieses Ziel zu erreichen, dann fühle ich Cordova Haken ist der Weg zu gehen. Sie können einen before_build Hook erstellen, um die Version aus der Datei config.xml zu lesen und diese in der App zu verwenden.

Glücklicherweise ist dieser Hook für Sie in den folgenden link verfügbar, wo sie Version von config.xml lesen und es als Abhängigkeit wo immer erforderlich injizieren.

Wir empfehlen Ihnen, sich auch die offizielle Dokumentation von cordova hooks zum besseren Verständnis anzusehen.

Infact, können Sie auch versuchen, Versionsinformationen aus config.xml zu lesen und direkt in einen Platzhalter zu legen, den Sie in Ihrem index.html erstellen können, um die Versionsinformationen anzuzeigen. Dies kann vor dem cordova-Build mithilfe von Hooks erfolgen, der wiederum eine Windows-Batch-Datei verwendet, die die Dateioperationen ausführt. Sie können ein funktionierendes Beispiel von Cordova Hook auschecken, das die Batch-Datei in meinem github page verwendet.

Hoffe es hilft.Prost

+2

+1 Das glaube ich ist eine perfekte Antwort. Ich bevorzuge Hooks über Plugins für so etwas, als ob sich Cordova ändert Ich bin nicht darauf angewiesen zu warten oder ein Plugin zu plündern und es zu ändern, um zu funktionieren. Wenn der Haken aus irgendeinem Grund nicht mehr funktioniert, geht die Show weiter. Ich werde es 48 Stunden geben, um zu sehen, ob es noch andere Antworten gibt, wenn nicht, werde ich Ihnen das Kopfgeld geben. Danke –

+0

Wenn dies die Kriterien von @strubbls Frage erfüllt, bitte ich, dass sie dies als Antwort akzeptieren. –

+2

Ein Haken scheint derzeit die beste Lösung zu sein. Danke, dass du es aufgezeigt hast. – Strubbl

2

Ich würde so etwas wie dies gerade tun:

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

diese Weise können Sie window.localStorage['version'] nennen können, wo immer Sie es brauchen.

+0

Nicht wirklich erklären, wie Sie 'cordova.getAppVersion' in erster Linie bekommen. –

+1

@WilliamIsted cordova.getAppVersion verwendet wieder cordova plugin – Gandhi

+0

Es ist ein Plugin, das veraltet ist, da das Projekt aufgegeben wird. Es hat Probleme mit einigen Geräten, daher würde ich es nicht empfehlen. https://github.com/whiteoctober/cordova-plugin-app-version – Juan

0

i das Plugin bei https://github.com/whiteoctober/cordova-plugin-app-version 1 Schritt beschreiben verwenden: cordova Plugin hinzufügen https://github.com/whiteoctober/cordova-plugin-app-version.git

2 Schritt (Ausschneiden und Einfügen) Wenn Sie jQuery oder AngularJS verwenden, wird Versprechen Stil unterstützt. Verwenden Sie so etwas wie:

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

Wenn nicht, eine Callback-Funktion übergeben:

cordova.getAppVersion.getVersionNumber(function (version) { 

alert(version); 
}); 

prost

Verwandte Themen