Widget-Entwicklung für Dashboard: Speichern und Laden von XML/Text-Daten

Im Gegensatz zur API-Dokumentation zur Yahoo!-Widget-Engine, ist die Dashboard-Referenz zum Erstellen von Dashboard-Widgets außerst knapp gehalten. Zu einigen wichtigen Themen wird nur kurz oder gar nicht eingegangen. Dann hilft nur geduldiges Suchen in der Apple Mailinglist "dashboard-dev".

Ein Beispiel ist das Speichern und Laden von XML- und Textdaten im Dateisystem. Hierfür gibt es zwei Wege:

  1. Die Verwendung der "Widget Preferences"
  2. Die Nutzung von Systemkommandos zum gespeichert und das XMLHTTPRequest-Objekt zum Laden von Textdaten.

Die "Widget Preferences" eigenen sich zum Speichern von Einstellungsdaten eines Widgets.  Ein kleines Beispiel wie man ein JSON-Objekt als Zeichenkette speichern kann.

var rssFeed = "{name: 'Heise Online', url: 'http://www.heise.de/newsticker/heise.rdf'}";
widget.setPreferenceForKey("selectedRSS",String(rssFeed));

Über den Schlüssel selectedRSS können die Daten wieder geladen werden.

var selectedFeed = widget.preferenceForKey("selectedRSS");
selectedFeedObj = eval("("+selectedFeed+")");
feedName = selectedFeedObj.name;
feedURL = selectedFeedObj.url;

Möchte man umfangreichere Daten wie eine XML-Struktur speichern kann man auf die Systemkommandos zurückgreifen. Dabei muss darauf geachtet werden, dass Anführungszeichen maskiert werden.

var selectedFeed = var xml = "<feed><name>Heise Online</name>heise.de/newsticker/heise.rdf</url></feed>";
widget.system ("/bin/echo " + xml+ " > /tmp/feedinfo.xml", callback);
function callback (){ widget.openURL ("file:///tmp/feedinfo.xml"); }

Um die Datei wieder in ein Widget zu laden kann sowohl widget.system oder das XMLHTTPRequest-Objekt verwendet werden.

var req = new XMLHttpRequest();
req.open("GET","localeRSS.xml",false); req.send(null);
var xml = req.responseXML;

 

Andere Blogbeiträge zum selben Thema:
JSON-Power für Widgets und Web 2.0

Kommentare (0)

Noch keine Kommentare vorhanden.








Zurück zur Übersicht