JSPatch热更新的利器.

Posted NGI.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSPatch热更新的利器.相关的知识,希望对你有一定的参考价值。

如果用一句话来描述JSPatch,就是利用系统自带的javascriptCore.framework配合RunTime机制,进行实时的代码下载与运行..

而且使用也很简单,启动,加载JS,运行...

    [JPEngine startEngine];
    NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"js"];
    NSString *script = [NSString stringWithContentsOfFile:sourcePath encoding:NSUTF8StringEncoding error:nil];
    [JPEngine evaluateScript:script];

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    [self.window addSubview:[self genView]];
    [self.window makeKeyAndVisible];

 

关键是装载进JSPatch的js怎么写. 

require(‘UIAlertView‘) //需要引入的类
defineClass(‘LifeViewController‘, { //作用于那个类
viewWillAppear: function(animated) { //重写那个函数
self.super().viewWillAppear(animated);
    var alert = UIAlertView.alloc().initWithTitle_message_delegate_cancelButtonTitle_otherButtonTitles("Hot - Fix Test", "热更新测试Hot-Fix Test", self, "取消", "确定", null);
    alert.setTag(1);
    alert.show();
},
});

 

不过也提供了将oc代码直接转成js的工具.

http://bang590.github.io/JSPatchConvertor/

 

其实JSPatch的想象空间很大. 如果运动得当,灵活性将不输于H5,但体验绝对秒杀H5.虽然一般拿来修复Bug...

以上是关于JSPatch热更新的利器.的主要内容,如果未能解决你的问题,请参考以下文章

IOS热更新-JSPatch实现原理+Patch现场恢复

苹果为什么要禁止JSPatch等热更新技术?

IOS热更新-JSPatch实现原理+Patch现场恢复

IOS热更新-JSPatch实现原理+Patch现场恢复

App情报局 | 炸窝了,苹果禁止使用热更新 JSPatch禁止

iOS中 动态热修补技术JSPatch 韩俊强的博客