您的位置:首页 > Web前端 > JavaScript

JSPatch应用的一些逻辑

2016-07-27 15:22 260 查看
首先毫无疑问在程序启动配置完运行参数的函数中执行和操作JSPatch的一些逻辑
- (BOOL)application:(UIApplication
*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


具体步骤
第一步:首先检查App本地指定的Patch文件路径是否有Patch文件,如果没有直接进入第三步

第二步:如果发现有Patch文件,检查App版本号和Patch对应缓存的版本号是否一致,不一致则删除本地旧的Patch文件

第三步:GET请求访问Patch info接口,返回类似于如下的返回结果
{"log":"test","create":"146882832","file":"patch.apatch","enable":"true","err":"0”}
参数解释:log-Patch文件描述 create-Patch创建时间 file-Patch文件下载链接 enable-是否应用网络和本地的Patch文件 err-错误信息
如果在第二步删除了旧版本的Patch文件,此时应判断enable的bool值,如果为YES,直接下载。
如果第二步没有执行删除操作,此时应首先判断enable的bool值,如果为false,则删除本地的Patch文件并且不进行接下去的Patch文件下载和执行操作;如果enable的bool值为true,则检查本地的Patch文件的创建日期和网络的Patch文件的创建日期,如果网络Patch的创建时间信息比本地Patch的创建时间信息近,进行第四步Patch文件下载操作,否则直接执行第五步Patch执行操作。

第四步:拿到Patch文件的URL,直接进行Patch网络文件的下载操作,下载操作需要放在一条请求队列中,保证如果发生下载操作失败的情况下能重新进行下载操作,下载到指定的存放Patch文件的沙盒路径中,如果有老的Patch文件,则替换老的Patch文件(命名如果保持一致下载完成会自动替换),并且在下载成功的回调后缓存Patch的相关信息(log,create,当前版本号)

第五步:执行本地存在的Patch文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS JSPatch hotfix 逻辑