博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS第三方类库JSPatch(热更新)
阅读量:6246 次
发布时间:2019-06-22

本文共 1911 字,大约阅读时间需要 6 分钟。

----------------------------------------------------------------------------------------------------------------------------

更新记录

2016年3月4日

JSPatch官方网址:

OC转JS代码工具:

----------------------------------------------------------------------------------------------------------------------------

原文地址:

  场景一:我们在做iOS开发的过程中,难免会由于自己的不细心导致一些小问题。如果产品没上线之前发现还好,如果上线了才发现问题,那么问题就大了,可能直接影响KPI,更严重的甚至直接面临着fire。

  场景二、一旦上线的产品,如果临时遇到需求变动,那么久必须重新修改代码。一旦修改了项目代码的话,我们就必须重新发版。这样岂不是很麻烦?

  现在就来让我们看一下JSPatch,它的出现可以在不发版的情况下动态的自行修复或者添加新的需求。

二、JSPatch简介  

  JSPatch:它是一个第三方类库,地址如下:

    

  它是JavaScript和OC之间的桥梁,你可以在js文件中去调用任何OC类和方法,然后在js文件中去动态修改OC类。达到不重新发版就更新的效果。它主要是使用的OC runtime实现的。我们可以使用它热更新自己的iOS app。

三、JSPatch使用

  首先,我们去下载,然后导入项目工程里面。(个人比较推荐使用cocoapods导入)然后我们在AppDelegate中导入:

#import "JPEngine.h"

然后添加如下代码在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

添加如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    [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.rootViewController = [ViewController new];    [self.window makeKeyAndVisible];    return YES;}

其中的demo.js就是我们需要手动去写的一个js代码:

require('UIView,UIColor');

defineClass('ViewController',{

changeBGColor:function() {

var view = self.view();

view.setBackgroundColor(UIColor.yellowColor());

return view;

}

});

我们可以简单看一下demo.js的内容。其中的ViewController就是我们需要更改的类的类名,changeBGColor就是类ViewController中的一个方法,我们可以通过该js去重写该方法,达到不更新OC代码就可以修改程序的效果。

四、项目中的使用

  这里就只是简单的说一下使用,我们可以让后台写一个接口,通过该接口去拿到服务器上的js文件,然后动态修改服务器上js文件,就可以达到热更新的效果。

五、更多

  更多使用可以查看其主页。

六、附

  源码地址:

转载地址:http://ycmia.baihongyu.com/

你可能感兴趣的文章
Email-ext plugin
查看>>
绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来
查看>>
文件系统
查看>>
Android模拟器Genymotion安装apk
查看>>
chrome使用技巧(看了定不让你失望)
查看>>
数据字典
查看>>
Laravel Model 的 fillable (白名单)与 guarded (黑名单)
查看>>
idea激活
查看>>
Presto 性能优化点
查看>>
Key Lookup开销过大导致聚集索引扫描
查看>>
CSS 中的字体兼容写法:用CSS为英文和中文字体分别设置不同的字体
查看>>
Java全栈程序员之04:Ubuntu下安装MySQL、注册服务及Navcat
查看>>
读吴恩达算-EM算法笔记
查看>>
Bug是一种财富-------研发同学的错题集、测试同学的遗漏用例集
查看>>
Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse
查看>>
服务测试碰钉子Server GC
查看>>
go关键字之select
查看>>
国内医保控费公司简单比较
查看>>
不错的网站模块地址
查看>>
uni - 介绍
查看>>