AIR同士のアプリケーション間通信
2009年1月22日 12:52
AIRアプリ間の通信にはflash.net.LocalConnectionクラスを使用する。
送信側アプリで入力したテキストを受信側に送信するサンプルコード。
■送信側コードサンプル抜粋
private var _sendCon:LocalConnection; private function setConnection():void { _sendCon = new LocalConnection(); _sendCon.addEventListener(StatusEvent.STATUS, function(event:StatusEvent):void { switch (event.level) { // 正常に送信完了 case "status": debugTextField.text = "正常に送信完了"; break; // エラー case "error": debugTextField.text = "送信エラーが発生しました。"; break; } }); } public function conSend():void { _sendCon.send("app#jp.xxxx.dataReceive.B146A943FBD637B68C334022D304CEA226D129B4.1:myConnection", "onReceive", inputTextField.text); }
sendメソッドに渡す引数は以下の通り。
_sendCon.send(“接続名”, “受信側のメソッド名”, 引数…)
接続名の前には送信先アプリケーションIDと発行者IDと接続名を以下の書式で追加して指定する。
「app#送信先アプリケーションID.発行者ID:接続名」
上記のサンプルコードでは各々以下のような設定となっている。
送信先アプリケーションID: jp.xxxx.dataReceive
発行者ID: B146A943FBD637B68C334022D304CEA226D129B4.1
接続名: myConnection
※発行者IDはAIRアプリがインストールされるディレクトリ内にある「META-INF/AIR/publisherid」に記述されている。
■受信側コードサンプル抜粋
private var _rcvCon:LocalConnection; private function setConnection():void { _rcvCon = new LocalConnection(); //_rcvCon.allowDomain("*"); _rcvCon.allowDomain("app#jp.xxxx.dataSend.B146A943FBD637B68C334022D304CEA226D129B4."); _rcvCon.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError); _rcvCon.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); _rcvCon.client = this; _rcvCon.connect("myConnection"); } public function onReceive(str:String):void { receiveTextField.text = str; }
allowDomainメソッドの引数には接続を許可するアプリケーションIDを以下の書式で設定する。
「app#送信先アプリケーションID.発行者ID」
上記のサンプルコードでは各々以下のような設定となっている。
送信元アプリケーションID: jp.xxxx.dataSend
発行者ID: B146A943FBD637B68C334022D304CEA226D129B4.1
ワイルドカードの指定の場合、全ての接続を許可する。
allowDomain(“*”)
上記サンプルは、送信側と受信側に分かれた一方通行な送信だが、
双方向通信を行う場合は、両方に送受信の設定をすればよい。
この場合、接続名は両方同じになる。
参考)
- 【連載】今からはじめるAIRプログラミング (14) 通信用API – AIR⇔Flex/Flashも可能! LocalConnectionによるデータ送受信
- 異なるドメインのコンテンツおよび他の AIR アプリケーションへの接続
追記)
FLASH間の双方向通信を簡易にするクラスFlashLCSというものが出たらしい。
まだ未使用だが、便利そうなので機会があれば使ってみたい。
http://blog.alt-scape.com/archives/296
カテゴリー: programming
Leave a comment
コメントはまだありません
No comments yet.