アプリ版:「スタンプのみでお礼する」機能のリリースについて

Flash CS6(Windows)を使ってPHPと通信するアンドロイドアプリを製作しています。
AIR 3.4 for Androidでパブリッシュし、PC上で動作させると普通にPHPと通信出来ます。
が、アンドロイド端末へインストールすると通信出来ません。
もしかしてAIR 3.4 for AndroidでパブリッシュしたアプリではPHPとの通信は出来ないのでしょうか?
もし、いい方法があれば教えていただければ非常に助かりますm( _ _ )mコマッテマス


SEND_btnというボタンをクリックした時、FLASH内に記述したデータをPHPに渡して
PHP側で結合させてテキストボックスhensuに返すという単純なプログラムです。

<<< Flash側 >>>
SEND_btn.addEventListener(MouseEvent.CLICK, fl_Click);

function fl_Click(event:MouseEvent):void
{
// 送信データ
var variables:URLVariables = new URLVariables();
variables.title = "ABC";
variables.url = "DEF";
variables.text = "GHI";

// データ送信先
var url_Request:URLRequest = new URLRequest();
url_Request.url = "phpアドレス";
url_Request.method = URLRequestMethod.POST;
url_Request.data = variables;

// 送信
var url_Loader:URLLoader = new URLLoader();
url_Loader.dataFormat = URLLoaderDataFormat.VARIABLES;
url_Loader.addEventListener(Event.COMPLETE,completeHandler);
url_Loader.load(url_Request);

// 受信;
function completeHandler(evt:Event):void
{
var re_variables:URLVariables = new URLVariables(evt.target.data);
hensu.text = re_variables.DATA;
}
}

<<<PHP側>>>
<?php

$title = $_POST['title'];
$url = $_POST['url'];
$text = $_POST['text'];
$All = $title.$url.$text;

$res = "DATA=" .$All;
echo $res;

?>

A 回答 (3件)

> URLVariables や URLRequest や URLLoader あたりが未対応なのでしょうか?


AIR for AndroidでURLLoader等を使っているサンプルもあるので、
未対応ということはなさそうです。

が、私はAIRには詳しくないので、
 http://livedocs.adobe.com/flex/3_jp/langref/flas …
この辺を参考に、
・ioErrorイベントでエラーの有無を調べる
・httpResponseStatusイベントで通信の状態を調べる
・サーバ側のログをチェック
などといった方法で調査してみてください。

この回答への補足

その後の調査でAIR for Androidアプリを実際にアンドロイド端末から操作し
普通に外部ファイルと通信出来ることを確認しました。
パブリッシュの設定>AIR for Andridの設定>権限>INTERNET項目にチェック。
これでインターネットを使った外部ファイルとの通信が可能になるようです。
Picosoft様この度はありがとうございました。

補足日時:2013/11/22 14:52
    • good
    • 0
この回答へのお礼

ありがとうございます。パブリッシュした物をPCで見るとわざと通信エラーにしたものはしっかりエラー
出ますがアンドロイド端末ではエラー表示が出なくて原因究明にはいたりませんでした。
引き続け調査してみます。

お礼日時:2013/11/21 18:32

> 2. そもそもfl_Clickが呼ばれていない と思われます。


そうだとすると、イベントリスナーの登録が正しくないのでしょう。

少し調べたところ、CLICKよりMOUSE_DOWNで拾っているサンプルの方が多かったので、
 SEND_btn.addEventListener(MouseEvent.CLICK, fl_Click);
   ↓
 SEND_btn.addEventListener(MouseEvent.MOUSE_DOWN, fl_Click);
としてみてはどうでしょう?
    • good
    • 0
この回答へのお礼

返信ありがとうございます。SEND_btn.addEventListener(MouseEvent.CLICK, fl_Click);
でマウスイベントは動作しているようです。
SEND_btn.addEventListener(MouseEvent.MOUSE_DOWN, fl_Click);
でもPHPとの通信は同じ状況でした。
URLVariables や URLRequest や URLLoader あたりが未対応なのでしょうか?

お礼日時:2013/11/21 17:19

AIRはまったく触ったことがないので、的外れな回答ならスルーしてくださいな。



> アンドロイド端末へインストールすると通信出来ません。
「通信出来ません」とは?
 1. fl_Clickが呼ばれたけど通信時にエラーが発生した
 2. そもそもfl_Clickが呼ばれていない
 3. その他
このうちのどれでしょうか?
まずそこのところを調べてはっきりさせてください。
(恐らく2番だと思いますが)

この回答への補足

<<<訂正です>>>
ただいま、もう一度テストしてみたところうまくタイムライン進みましたので
fl_Clickは呼ばれているようです。宜しくお願いいたしますm( _ _ )m

補足日時:2013/11/21 17:12
    • good
    • 0
この回答へのお礼

早速、ありがとうございます。

ただいま、送受信し、かつタイムラインを進めるという感じでテストしてみたところ
タイムラインも進みませんでしたので 2. そもそもfl_Clickが呼ばれていない と
思われます。やはりスクリプトの内容が対応していないのでしょうか?

お礼日時:2013/11/21 16:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!