Recently I made some test on iPad to test how to update contents of my mobile applications.
I tried some new AIR 2 API like open default program with PDF or XLS files but I get error #3000 (privileges error).
My idea is to create a routine where I’ll be able to update all contents on my application without passing trough Apple store.
So I tried with URLStream and AIR filesystem API, everything works well.
Code is so easy, take a look here:
//RETRIEVING IMAGE FROM ANY WEBSERVER
var urlS:URLStream = new URLStream();
urlS.addEventListener(Event.COMPLETE, downloadComplete);
urlS.addEventListener(ProgressEvent.PROGRESS, showPerc);
urlS.load(new URLRequest("http://192.168.1.9:8888/oliviaWilde.jpg"))
//DOWNLOADED IMAGE BYTEARRAY AND LOADING IN LOADER
function downloadComplete(e:Event):void {
perc_txt.text = "";
fileData = new ByteArray();
urlS.readBytes(fileData,0,urlS.bytesAvailable);
bytes = urlS.bytesAvailable;
l.loadBytes(fileData);
l.addEventListener(MouseEvent.CLICK, saveIt);
}
//SAVE IMAGE INTO APPLICATIONSTORAGEDIRECTORY
function saveIt(e:MouseEvent):void{
f = File.applicationStorageDirectory.resolvePath("a.jpg");
var fs:FileStream = new FileStream();
fs.open(f, FileMode.WRITE)
fs.writeBytes(fileData);
fs.close();
}
//LOAD IMAGE FROM APPLICATIONSTORAGEDIRECTORY
function loadLocalImg(e:MouseEvent):void{
var finalBA:ByteArray = new ByteArray();
var fs:FileStream = new FileStream();
fs.open(f, FileMode.READ);
fs.readBytes(finalBA, 0, bytes);
fs.close();
l.loadBytes(finalBA);
}
Using applicationStorageDirectory, you can save data into your application and retrieve it with AIR API.
In the video below, you can see a little demo where I load an image from a server, I save it, I unload click on the black right button and finally I load again but from ApplicationStorageDirectory, with the black left one, instead of loading from webserver.