Blackberry Widget – Update Funktion

Auf dem Blackberry kann man zum Glück noch Programme installieren die nicht aus der App World kommen. Entweder man installiert sie OTA (OverTheAir) oder mit dem Blackberry Manager. Ich denke das jeder lieber die OTA Variante wählt. Wenn man eine App über App World heruntergeladen und Installiert hat, dann wird man auch über neue Updates informiert. Das Funktioniert leider nicht bei Apps die man OTA von irgendwo anders installiert hat und so muss jede App eine eigene Update Funktion mit sich bringen. Dazu habe ich einen kleinen XML Parser geschrieben der auf Abruf (oder Automatisiert – je nachdem wie man es einbaut) nachschauen kann ob es eine neue Version vorhanden ist. Dafür muss man selber nur in der App das folgende Script einbauen und auf dem Server die passende xml Datei hinterlegen und updaten wenn man eine neue Veröffentlichen will.

Die XML Datei sieht bei mir folgendermaßen aus:

<version>
<weatherme version=”1.0.0.4″ url=”http://blackberry.itbert.de/weatherme/weatherme.jad”></weatherme>
<wmlive version=”1.0.0.3″ url=”http://blackberry.itbert.de/wmlive/wmlive.jad”></wmlive>
<wadokulive version=”1.0.0.4″ url=”http://blackberry.itbert.de/wadokuonline/wadokuonline.jad”></wadokulive>
</version>

An sich ganz einfach. Für jede Anwendung kann man die Version und die URL des Downloads angeben. Was braucht man mehr? Das Javascript sieht auch nicht viel komplizierter aus:

var AppVersion = “1.0.0.2”;
var AppName = “weatherme”;

function checkUpdates () {

var req = new XMLHttpRequest();
req.open(“GET”, “http://blackberry.itbert.de/finger/version.xml”, false);
req.send(null);

if (req) {
version = req.responseXML.getElementsByTagName(AppName).item(0).getAttribute(“version”);
url = req.responseXML.getElementsByTagName(AppName).item(0).getAttribute(“url”);

if ( AppVersion < version ) {
if (confirm(‘Do you want Upgrade to version ‘+version+’?’))
{
var args = new blackberry.invoke.BrowserArguments(url);
blackberry.invoke.invoke(blackberry.invoke.APP_BROWSER, args);
}
}

}
}

Damit das ganze auch Funktioniert braucht man folgende Berechtigungen in der config.xml

<feature id=”blackberry.invoke” required=”true” version=”1.0.0.0″/>
<feature id=”blackberry.invoke.BrowserArguments” required=”true” version=”1.0.0.0″/>
<feature id=”blackberry.identity” required=”true” version=”1.0.0.0″/>
<feature id=”blackberry.ui.dialog” required=”true” version=”1.0.0.0″/>
<feature id=”blackberry.app” required=”true” version=”1.0.0.0″/>

Jetzt muss man nur noch die Funktion in einen Button einbauen oder bei jedem Start der App aufrufen.

<script language=”javascript”  type=”text/javascript”>
checkUpdates ();
</script>

Das ganze als Paket gibt es hier und bei Gelegenheit werde ich das in meine bestehenden Apps einbauen, aber vorher verdrücke ich mich in das hoffentlich kühlere Wien.

2 thoughts on “Blackberry Widget – Update Funktion

  1. Hi,

    vielen Dank für die Idee und Tutorial :) . Eine kleine Verbesserung hätte ich noch und zwar beim JS die Var AppVersion kann man auch auslesen:

    var AppVersion = blackberry.app.version;

    so brauch man nicht immer manuell die aktuelle Version eintragen. Und in der config.xml muss man noch

    das vergesse ich auch oft :( .
    Ansonsten klasse :)

    cu
    UserNeo

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.