使用JSPatch实现iOS APP动态更新
来源:互联网 发布:dota狐狸妈黑历史 知乎 编辑:程序博客网 时间:2024/05/16 10:58
经常碰到APP刚发布,由于一些bug或者界面的改动又要重新发布APP,并提醒用户进行更新(大多用户不愿更新);这样不但需要付出巨大人力和时间成本,关键用户体验也不好;
使用JSPatch可以解决这样的问题,首先需要在项目中引入JSPatch,等需要更新时只要下发JS脚本补丁,在这个.js文件里实现相应的方法来替换原生方法就可以实现用户不用更新APP来修改bug或一些界面的微调。
实现方法:
1.导入JSPatch:
2.在APPDelegate.m中初始化配置文件:
@implementation AppDelegate
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
{
//JSPatch动态更新APP(设备详情界面)
[self updateInverterViewController];
….
return YES;
}
pragma mark 动态更新APP(设备详情界面)
-(void)updateInverterViewController{
[JPEngine startEngine];
//把.js文件放在远程服务器上
// [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@”文件地址”]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
// NSString *script = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// if (script) {
// [JPEngine evaluateScript:script];
// }
// }];
//.js文件放在本地
NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@”JSPatchForInverterViewController” ofType:@”js”];
NSString *script = [NSString stringWithContentsOfFile:sourcePath encoding:NSUTF8StringEncoding error:nil];
[JPEngine evaluateScript:script];
}
3.在.js文件里写要修改的内容
defineClass(‘DeviceMainViewController’, {//DeviceMainViewController为要修改的类名
didArrayOfBtnClick:function(BtnTag){//didArrayOfBtnClick:为要修改的方法,BtnTag为方法的参数(没有类型之分)
if(self.sensor()==9987){//当该类的一个属性满足某个条件后对另一个属性的值进行修改
if (BtnTag==101) {
self.setMenuArray([
[[“直流输入电流PV1”,”DCPV1”],[“直流输入电流PV1”,”DCPV1”],[“直流输入电流PV1”,”DCPV1”],[“直流输入电流PV1”,”DCPV1”]],
[[“直流输入电流PV2”,”DCPV2”],[“直流输入电流PV2”,”DCPV2”],[“直流输入电流PV2”,”DCPV2”],[“直流输入电流PV2”,”DCPV2”]],
[[“直流输入电流PV3”,”DCPV3”],[“直流输入电流PV3”,”DCPV3”],[“直流输入电流PV3”,”DCPV3”],[“直流输入电流PV3”,”DCPV3”]]])
}
}
},
具体demo请参考:https://github.com/bang590/JSPatch
- 使用JSPatch实现iOS APP动态更新
- JSPatch-动态更新IOS APP
- JSPatch - 动态更新iOS APP
- iOS 使用JSPatch实现APP线上修复的热更新
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch: iOS App 动态更新服务平台
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch – 动态更新iOS APP
- JSPatch简介 – 动态更新iOS APP
- iOS通过 JSPatch实现 app的热更新
- android开发6.0权限适配
- [Python]默认函数参数注意点
- AbstractSecurityWebApplicationInitializer
- CentOS 6.x 升级Python2.6.x到Python2.7.x
- 欢迎使用CSDN-markdown编辑器
- 使用JSPatch实现iOS APP动态更新
- iOS开发中常见得运行报错
- View的setTag()和getTag()方法
- jQuery动画与特效
- 异步触发器发送短信
- Hust oj 1293 取数(Map)
- ByteBuffer中属性及其操作
- 玩转 System Bar ( StatusBar 和 NavigationBar)
- 今日头条面试(android)