美文网首页jspatch
iOS热更新_无需发布新版本实现app更新

iOS热更新_无需发布新版本实现app更新

作者: 小雨雨儿 | 来源:发表于2016-11-07 22:13 被阅读1112次

实现热更新的方法:

  1. 使用FaceBook 的开源框架 reactive native
  2. 使用JSpatch

JSPatch 学习总结

  以下内容为学习总结记录。JSPatch是实现热更新(无需发新版本实现app添加新功能)的一个框架。可以为项目动态添加模块,或替换项目原生代码动态修复 bug。比较其他的热更新方法,学习成本更低。JSPatch坐着给出的说明文档非常详细,网址:

JSPatch下载地址:https://github.com/bang590/JSPatch
讲述JSPatch:http://blog.cnbang.net/
使用说明文档介绍:https://github.com/bang590/JSPatch/wiki

JSPatch的使用简记:

//JSPatch的三个文件导入项目,在需要的地方加入以下代码
[JPEngine startEngine];
NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"js"];
NSString *script = [NSString stringWithContentsOfFile:sourcePath encoding:NSUTF8StringEncoding error:nil];
[JPEngine evaluateScript:script];

ViewController中的button事件

- (void)setButtonAction:(UIButton *)sender {
    self.view.backgroundColor = [UIColor redColor];
}

使用JS改变button事件的写法:

require('UILabel, UIColor, UIFont')

defineClass('ViewController', {
setButtonAction: function(sender) {
    var viewController = XYViewController.alloc().init()       self.navigationController().pushViewController_animated(viewController,YES)
}
   
})

defineClass('XYViewController:UIViewController',{
viewDidLoad:function() {
    self.ORIGviewDidLoad();
    var whiteColor = UIColor.whiteColor();
    var view = self.view()
    view.setBackgroundColor(whiteColor);
   
    var lab = UILabel.alloc().initWithFrame({x: 10, y: 150, width: 100, height: 30});
    lab.setText("happy");
    lab.setTextAlignment(2)
    self.view().addSubview(lab);
   
},
   
})

相关文章

网友评论

    本文标题:iOS热更新_无需发布新版本实现app更新

    本文链接:https://www.haomeiwen.com/subject/hizouttx.html