FlashLite-Workshop 11.6.07: Kommunikation nach außen

Summary

Dieser Workshop soll die Möglichkeiten von Flash Lite aufzeigen, mit externen Anwendungen auf dem Mobiltelefon zu interagieren - am Beispiel von getURL() und fscommand(”Launch”).

SMS-Versand mit getURL() 

Die getURL()-Funktion lädt ein Dokument aus einer bestimmten URL oder übergibt Variablen an eine andere Anwendung unter der angegebenen URL. Bei Aufruf mit einer absoluten URL (z. B. http://mmvr.burg-halle.de) ist eine Netzwerkverbindung erforderlich.

Ein Aufruf von getURL() wird von Flash Lite an das Betriebssystem des Mobiltelefons übergeben. Die für das angegebene Protokoll registrierte Standardanwendung übernimmt dann die weitere Abarbeitung. Folgende Protokolle sind Flash Lite seit Version 1.1 bekannt:

  • HTTP (Hyper Text Transfer Protokoll, öffnet die eine angegebene URL im Standardbrowser)
  • HTTPS (Hyper Text Transfer Protokoll Secure, öffnet die eine angegebene URL im Standardbrowser)
  • MAILTO (öffnet die Standard-EMail-Anwendung und erlaubt Übergabe von Empfängeradresse, Betreff und Mailtext)
  • TEL (wählt eine angegebene Telefonnummer nach Rückfrage)
  • FILE (öffnet eine im lokalen Dateisystem gespeicherte Textdatei)
  • SMS (Short Message Service, öffnet die Standard-SMS-Anwendung und erlaubt Übergabe von Telefonnummer und Messagetext)
  • MMS (Multimedia Message Service, öffnet die Standard-MMS-Anwendung und erlaubt Übergabe von Telefonnummer und Messagetext -> ist mit dem Nokia N70 nicht möglich!)

Eine Besonderheit in Flash Lite ist, dass pro Frame oder Ereignisprozedur jeweils nur eine getURL()-Funktion verarbeitet wird. Zudem ist bei einigen Geräten die Funktion getURL() auf Tastenereignisse beschränkt, das heißt, dass ein getURL()-Aufruf nur dann verarbeitet wird, wenn er in einer Tastenereignisprozedur ausgelöst wurde.

Das folgende Beispiel zeigt den Einsatz von getURL() zum Versenden von SMS-Nachrichten über die Standard-SMS-Anwendung.

Das zum Schreiben einer SMS mit den Zahlentasten benötigte ”Inline Text Field” stammt aus dem Downloadbereich des Buches “Flash Applications for Mobile Devices” (Leggett/de Boer/Janousek; Verlag FriendsOfED 2006); dieses ist zudem bei mir ausleihbar. Die Logik des “Inline Text Field” ist in einer externen ActionScript-Datei ausgelagert und wird über eine Verknüpfung in der Bibliothek (”InlineTextField”) beim Exportieren als SWF eingebunden. Auf die Bühne wird eine Instanz des entsprechenden Symbols “InlineTextField” mit dem Namen “itf” gebracht. Es erhält über die Anweisung in Zeile 25 den Fokus, wodurch sofort nach dem Start eine Texteingabe möglich ist.

Die Zielrufnummer für den Versand der SMS muss in diesem Beispiel zuvor in Zeile 16 des Skripts (Hauptzeitleiste, Ebene ”AS”) manuell eingetragen werden, um einer Fehlermeldung im unteren (Status-)Textfeld vorzubeugen. In der Praxis sollte man für die Eingabe der Nummer ein zweites Eingabefeld vorsehen ;-)

Das eigentliche Versenden erfolgt mittels getURL(”sms:”)-Anweisung. Ab Zeile 39 ist der entsprechende Actionscript-Code zu finden, welcher nach Drücken der linken Softtaste ausgeführt wird: Nach einem Vergleich, ob sowohl eine Telefonnummer als auch ein SMS-Text eingegeben wurde (Zeile 42), wird in Zeile 44 der String für den getURL()-Aufruf zusammengestellt:
smsCommand = "sms:" + targetNumber + "?body=" + messageText;
und in Zeile 46 an getURL() übergeben:
getURL(smsCommand);

Die allgemeine Syntax lautet also
getURL("sms:Rufnummer?body=SMS-Text“);
wobei “sms:” das Protokoll ist.

Flash Lite öffnet die Standard-SMS-Anwendung und übergibt die Rufnummer sowie den Text der SMS an die entsprechenden Felder der Anwendung. Nach Absenden/Abbruch und Beenden der SMS-Anwendung wird zur Flash-Anwendung zurückgekehrt. Nun ist die ”OK”-Meldung im unteren Statustextfeld zu sehen und das Eingabefeld für den SMS-Text wird geleert. Eine Überprüfung, ob getURL() erfolgreich war oder nicht, ist m.E. nicht möglich.

Download: Beispiel FlashLite-Workshop: SMS mit getURL()

Anwendungen aufrufen mit fscommand(”Launch”)

(folgt in Kürze)


About this entry