air升级程序利用7za.exe curl.exe后台升级
来源:互联网 发布:网络连接受限制怎么办 编辑:程序博客网 时间:2024/06/05 07:23
package fanlib.air
{
import com.hexagonstar.util.debug.Debug;
import flash.desktop.NativeProcess;
import flash.desktop.NativeProcessStartupInfo;
import flash.events.Event;
import flash.events.NativeProcessExitEvent;
import flash.events.ProgressEvent;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLStream;
import flash.utils.ByteArray;
//air 升级
public class AirUpgrade
{
//升级
static var urlLoader:URLLoader;
public static var localUpdateProgramVer:Number=-1;
public static var netUpdateProgramVer:Number=-1;
static var netUpdateFilePath:String;
static var updateUrlStream:URLStream;
static var updateFile:File;
static var localIniData:String;
public static var netIniData:String;
public static function update():void{
if(urlLoader==null){
urlLoader=new URLLoader();
}
checkUpdateProgramVer();
}
//检查升级程序版本
private static function checkUpdateProgramVer():void{
//先读取本地升级程序版本
urlLoader.removeEventListener(Event.COMPLETE,updateIniLoadHandle);
urlLoader.addEventListener(Event.COMPLETE,updateIniLoadHandle);
urlLoader.load(new URLRequest("client.ini"));
}
private static var updateUrl:String = "";//
private static function updateIniLoadHandle(event:Event):void
{
urlLoader.removeEventListener(Event.COMPLETE,updateIniLoadHandle);
localIniData=urlLoader.data.toString();
var match:Array=localIniData.match(/ver=(\d+[\\.]{0,1}\d*)/);
updateUrl = localIniData.match(/url=(.+\.ini)/i)[1];
if(match!=null&&match.length>1){
localUpdateProgramVer=Number(match[1]);
checkNetUpdateProgramVer();
}else{
//runMainUpdateApp();
}
}
private static function checkNetUpdateProgramVer():void{
urlLoader.removeEventListener(Event.COMPLETE,updateNetIniLoadHandle);
urlLoader.addEventListener(Event.COMPLETE,updateNetIniLoadHandle);
urlLoader.load(new URLRequest(updateUrl));
}
private static function updateNetIniLoadHandle(event:Event):void
{
urlLoader.removeEventListener(Event.COMPLETE,updateNetIniLoadHandle);
netIniData=urlLoader.data.toString();
var match:Array=netIniData.match(/ver=(\d+[\\.]{0,1}\d*)/);
if(match!=null&&match.length>1){
netUpdateProgramVer=Number(match[1]);
if(netUpdateProgramVer>localUpdateProgramVer){
runMainUpdateApp();
}
}else{
//runMainUpdateApp();
}
}
//运行主升级程序
private static function runMainUpdateApp():void{
if(netUpdateProgramVer==localUpdateProgramVer+1){
var match1:Array=netIniData.match(/url=(.+\.7z)/i);
AirCurl.startInstall(match1[1]);
}else{
var match2:Array=netIniData.match(/urlall=(.+\.7z)/i);
AirCurl.startInstall(match2[1]);
}
}
}
}
原理:首先读取client.ini的升级地址server.ini。然后利用curl下载升级包。升级包下载完利用7za解压文件
升级完成
如有不明白请到www.fanshymy.com留言
0 0
- air升级程序利用7za.exe curl.exe后台升级
- Air调用本地exe程序
- 使用winrar打包air程序为exe
- 使用winrar打包air程序为exe
- 升级curl
- Python脚本生成的exe文件自动升级程序实现方法
- Flex Air程序打包成独立的exe安装文件
- AIR-检查升级
- curl.exe - 找不到序数
- 升级Android SDK后出现找不到adb.exe的情况
- 解决flex打包成exe之后不能升级的问题
- SDK升级后adb.exe找不到的解决办法
- 关闭腾讯windows10的免费升级,checkmewin10.exe
- 利用shutdown.exe作的自动关机程序
- 利用electron-packager打包exe程序
- python--利用PyInstaller打包exe程序
- 查杀占用网络资源的升级版ipz.exe与ipz2.exe病毒
- air打包成exe工具
- LeetCode | Word Break II
- Shell 脚本小试牛刀(5) -- 超便捷脚本之快速ssh 登录其他主机
- Cocos2d-js 实现弹窗背景虚化效果
- 7月2日倒霉
- poj 3709: 2进制转化为3进制
- air升级程序利用7za.exe curl.exe后台升级
- Factory Method - 工厂方法模式
- ci框架---调用非php文件作视图
- rails 数据验证
- java语言-下雪花的简单小程序
- SQL语句异常导致项目报错
- 使用Cocos2d-x 3.0和物理引擎制作简单的platformer游戏
- git push 小结
- Java Socekt 入门 一