我正在使用 Inno Setup 為桌面 AIR 應用程式創建安裝程式。我讓我的桌面應用程式檢查我的資料庫中的應用程式版本號,讓用戶知道是否有準備安裝的更新。我想為用戶提供一個非常無縫的更新程序,所以如果他們想更新,我想讓 AIR 下載 EXE 然后運行它。
1.) 你如何在 AIR 中從網上下載像 EXE 這樣的大檔案,你需要把它放在某個特定的地方嗎?2.) 下載檔案后,如何讓 AIR 執行 EXE?
謝謝!
uj5u.com熱心網友回復:
public static function download(sourceURL:String, destinationPath:String, complete:Function = null, progress:Function = null, error:Function = null):void
{
var urlReq:URLRequest = new URLRequest(sourceURL);
var urlStream:URLStream = new URLStream();
var fileData:ByteArray = new ByteArray();
if(progress != null) urlStream.addEventListener(ProgressEvent.PROGRESS, progress);
if(error != null) urlStream.addEventListener(IOErrorEvent.IO_ERROR, error);
urlStream.addEventListener(Event.COMPLETE, loaded);
urlStream.load(urlReq);
function loaded(event:*):void
{
urlStream.readBytes(fileData, 0, urlStream.bytesAvailable);
writeFile();
}
function writeFile():void
{
var file:File = new File(destinationPath sourceURL.slice(sourceURL.lastIndexOf("/"), sourceURL.length));
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeBytes(fileData, 0, fileData.length);
fileStream.close();
if(complete != null) complete();
}
}
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = file;
process = new NativeProcess();
process.closeInput();
process.start(nativeProcessStartupInfo);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/418268.html
標籤:
