0

我有一个从我运行的服务器检索 XML 的应用程序...我试图限制对服务器的调用(如果可能)以提高应用程序的响应能力并降低如果数据流不产生用户出错的可能性无论出于何种原因,这次旅行都成功了——我遇到了一些间歇性的网络监视器错误,这可能是由于我认为我有一些 wifi 通道冲突,但它仍然是整个过程中的一个潜在弱点,如果我可以解决这个需求每次用户在应用程序中执行“操作”时调用服务器。

我想做的是使用设备上的本地存储(在启动应用程序时)检索并保存 XML 数据,然后将我的 httpservice url 更改为本地文件。

我之前使用了一些代码来成功地将配置设置写入和读取到本地文本文件,所以我很确定这可以实现,只是不确定如何去做。

感谢任何人可以对此有所了解或任何人可以分享的任何代码示例。

4

1 回答 1

0

默认情况下从applicationStorageDirectory如果它不存在 donwload 加载它并将 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 回答