0

実行しているサーバーから XML を取得するアプリがあります...サーバーへの呼び出しを制限して (可能であれば)、アプリの応答性を向上させ、データ ストリームが作成されない場合にユーザーがエラーを受け取る可能性を減らします。なんらかの理由で旅行が成功しました-断続的なネットワークモニターエラーが発生します。これは、私が考えているいくつかのwifiチャネルの競合が原因である可能性がありますが、それでもプロセス全体の潜在的な弱点であり、その必要性を回避できる場合ユーザーがアプリ内で「アクション」を実行するたびにサーバーを呼び出します。

私がやりたいのは、デバイスのローカル ストレージを使用して (アプリの起動時に) XML データを取得して保存し、httpservice url をローカル ファイルに変更することです。

構成設定をローカルテキストファイルに正常に読み書きするために以前に使用したコードがいくつかあるので、これを達成できると確信していますが、正確にどうすればよいかわかりません。

誰かがこれに当てることができる光、または誰かが共有できるコード例に感謝します。

4

1 に答える 1

0

存在しない場合はデフォルトでapplicationStorageDirectoryダウンロードし、xmlをに保存します。applicationStorageDirectory

ロードする:

var xmlFile:File = File.applicationStorageDirectory.resolvePath("data.xml");
if (xmlFile.exists)
{
   var fileStream:FileStream = new FileStream();
   fileStream.open(xmlFile, FileMode.READ);
   var xml:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));// you will want to declare outside this scope, its just for show
   fileStream.close();
}else{
  downloadAndSaveXML();// if it doesnt exist dowload it then save it and call load again!
}

保存する:

//download .xml first and save in the onComplete handler, im calling the file "xml"
var file:File = File.applicationStorageDirectory.nativePath("data.xml");
var stream:FileStream = new FileStream();
stream.open(file, FileMode.WRITE);
stream.writeUTFBytes(xml.toXMLString());
stream.close();

アイデアが浮かびますか?

HTTPServiceがオンラインでxmlを検索しないように、このコンパイラ引数も必要になります

-locale en_US -use-network=false

そもそもファイルのダウンロードを気にせず、アプリケーションに埋め込むだけです。

ここにトピックへのリンク

于 2013-03-14T01:15:32.193 に答える