[Update] Widgets mit Windows Mobile 6.5
Seit WM 6.5 werden auf dem Windows Smartphone W3C Widgets* unterstützt. Diese kleinen Mini-Applikationen werden mittels HTML und Javascript implementiert. Folgend eine kleine Beispiel App.
Konfiguration
Eine config.xml definiert die Startdatei (hello.html), ein Icon (hello.png) und ein paar Metadaten.
<?xml version=”1.0″ encoding=”utf-8″ ?>
<widget xmlns=”http://www.w3.org/ns/widgets”
version=”0.1″
id=”">
<name>Hello Widget</name>
<content src=”hello.html” type=”text/html” />
<icon src=”hello.png” /><author href=”http://www.pc-in-not.net/”
email=”dennis@pc-in-not.net”>Dennis</author>
<description>Dies ist eine kleine Hallo-App.</description>
</widget>
Inhalt
Eine HTML Datei stellt den Inhalt eines Widget dar und wird in der Konfiguration angegeben.
<html>
<head>
<title>Hallo Widget</title>
<script type=”text/javascript”>var mn1001 = widget.menu.createMenuItem(1001);
mn1001.text = ‘Hilfe’;
mn1001.onSelect = hilfe;
widget.menu.setSoftKey(mn1001, widget.menu.leftSoftKeyIndex);var mn1002 = widget.menu.createMenuItem(1002);
mn1002.text = ‘Version’;
mn1002.onSelect = version;
widget.menu.append(mn1002);function hilfe() {
alert(’Wähle eine Sprache um das Wort “Hallo” in diese zu übersetzen.’);
}function version() {
alert(widget.name+’ v’+widget.version+’ von ‘+widget.authorName+’ ‘+widget.authorURL);
}function hallo(e) {
var id=e.id;
var s=”;
if (id == ‘en’) s=’Hallo auf Englisch: Hello’;
if (id == ‘es’) s=’Hallo auf Spanisch: Hola’;
var h=document.getElementById(’hallo’);
h.innerHTML=s;
}</script>
<style type=”text/css”>
</style>
</head>
<body>
<b>Widget Demo</b>
<h1>Hallo</h1>
<p>Dies hier ist ein kleines Hallo-Widget.<br/>Wähle eine Sprache.</p>
<input id=”en” type=”button” value=”Englisch” onclick=”hallo(this)”/>
<input id=”es” type=”button” value=”Spanisch” onclick=”hallo(this)”/><br/>
<br/>
<div id=”hallo”></div>
</body>
</html>
In der HTML Datei sind auch die Javascripts für die Steuerung enthalten. Die Script können auch extra abgelegt werden und im src Attribut des Script Elements angegeben werden.
Widget Object
Im Javascript kann das normale DOM Modell fast vollständig genutzt werden. Es gibt ein zusätzliches Object widget, welches einige Sonderfunktionen zur Verfügung stellt, u. a.
- Belegung der Softkeys
- Anpassung der Menüeinträge
- Zugriff auf die Metadaten aus der config.xml
- SystemState für Daten vom Telefon (Signalstärke, Provider, …)
Die widget und SystemState Objekte sind im Developing Widgets for Windows Mobile 6.5 Guide* beschrieben.
Datenspeicherung/-abruf
Ein Widget läuft in einer Sandbox und kann nicht auf den Speicher (außerhalb der eigenen Sandbox) des Smartphones zugreifen.
Daten befinden sich auf einem Web-Server in Internet und sind dort als XML abgelegt. Der Datenabruf und die Speicherung sind mit XMLHttpRequests* möglich.
Weiter können kurze Texte (max. 4000 Zeichen) in der Sandbox gespeichert werden, auf die ausschließlich dieses Widget zugreifen kann. Diese Daten stehen auch nach Beenden und Neustarten des Widgets wieder zur Verfügung.
Ein Beispiel für XMLHttpRequests bzw. Persistence gibt es im zweiten Teil. Die Funktion ist für Neugierige
ebenfalls im Developer Guide zu finden.
Icon
Für ein Widget ist noch ein Icon notwendig. Dieses kann eine PNG, ICO oder JPG Datei sein und wird in der config.xml angegeben.
Verpacken und Installieren
Die Dateien eines Widgets (config.xml, widget.html, widget.png, ggf. weitere Bilder oder .js Dateien und auch CSS) werden als ZIP Datei gepackt. Anschliessend muss das ZIP nach .wgt oder .widget umbenannt werden.
WM6.5 kann werkseitig nur Widget aus dem Marketplace installieren. Für eine Installation von SD Karte ist eine Anpassung der Registry notwendig.
[HKEY_CLASSES_ROOT\riapp]
“EditFlags”=dword:00010000
[HKEY_CLASSES_ROOT\riapp\Shell\Open\Command]
@=”wmwidgetinstaller.exe %1″
Die Einstellungen der Registry können z. B. mit dem PHM Registry Editor* durchgeführt werden. Nach der Anpassung werden .wgt und .widget Dateien wie gewöhnliche Programmepakete (.cab) installiert und mit ihrem Icon im Startmenü aufgenommen.
[Update, 27.08.2010] Im Artikel Windows Mobile Registry Editor gibt es eine passende reg-Datei einschl. Link zum Registry Editor für die Aktivierung der Widget-Installationen (exportiert aus dem WM Emulator).
Beispiel Widget
Das im Sourcecode beschriebene Widget kann hier heruntergeladen werden.
* Für den Inhalt externer Links bin ich nicht verantwortlich und übernehme keine Gewähr.
XMLHttpRequest
Diesen Artikel bookmarken:
![Bookmark [Update] Widgets mit Windows Mobile 6.5 at YahooMyWeb](http://www.pc-in-not.net/wp-content/plugins/sociable/images/yahoomyweb.png)
Tags:Widget, Windows Mobile, WM65






Lexxy´s Welt am 14 Jun 2010 um 11:02 pm
Das HTC Touch Diamond 2…
Hallo! Toller und interessanter Beitrag. Ich habe daher einen Trackback zu meinem Blog gesetzt!
…