美文网首页
初识 JSPatch

初识 JSPatch

作者: 涂川iOS | 来源:发表于2016-07-21 19:34 被阅读73次

前言说明:

    前段时间看新浪微博的一些文章,有位叶大神提到 JSPatch 的作者和一些关于 JSPatch 的文章,遂去了解了一下.


1.可以干什么(了解 JSPatch)

    苹果开发者,要想你编写的应用让更多的人下载使用,你就必须让你的应用上传到苹果应用商店.一旦苹果商店里面的应用出现bug,你就要解决 bug, 然后从新更新版本. 如果从新更新的话苹果审核快则一个星期,慢则半个月,在此期间用户对 App 的体验就会很差,一旦是重大的 bug, 更需要即时更改.虽然今年六月份之后 App 上线的速度快了很多,大概两天左右,但是遇到比如崩溃等问题,也是需要越即时修复线上 bug.

JSPatch利用javascript调用苹果原生的接口,替换任意的 Objective-C,修复线上 bug.

2.准备工作

1.在 JSPatch 平台注册,新添加 App,生成 AppKey, 和很多第三方平台注册一样.

2.在该平台下载 SDK,集成到项目里面

3.导入JavaScriptCore.framework框架,这个框架是JavaScript 调用 OC 原声接口用的

3.使用 JSPatch

1.导入头文件

#import <JSPatch/JSPatch.h>

2.在application:didFinishLaunchingWithOptions:方法里面测试一下怎么用 JSPatch

[JSPatch testScriptInBundle];

注意:实时性不高的 App 在application:didFinishLaunchingWithOptions:方法里面调用一次就行了,实时性高的 App 在applicationDidBecomeActive:里面调用

4.测试

1.项目测试

每组多少个,默认返回一组

 cell 的复用

跑完程序一定崩溃

2.新建 main.js 文件

直接把 File 文件改成 main.js

3.然后在main.js里面用 javascript代理直接调用苹果的原生代码进行更改

defineClass("ViewController", {

tableView_cellForRowAtIndexPath:function(tableView, indexPath) {

varcell = tableView.dequeueReusableCellWithIdentifier("cell")

if(!cell) {

cell = require('UITableViewCell').alloc().initWithStyle_reuseIdentifier(0,"cell")

}

cell.textLabel().setText("1")

returncell

},

}

)

这里对项目里面 ViewController类里面的tableView_cellForRowAtIndexPath:这个方法进行了从新编写,用的是javascript,这样你在跑一下就不会崩溃了,因为从新编写了tableView_cellForRowAtIndexPath:这个方法里面的代码,然后这一句cell.textLabel().setText("1")就相当于self.textlable.text = @"1";

所以得到了实现了javascript更改 OC 源代码

还有一些关于线上版本的管理,灰度和条件发布,自定义RSA密钥必要和安全问题没有介绍以后补上,还有这个 JSPatch 调用次数超过一定量的时候,会收取一定的费用,具体收多少, JSPatch 有介绍

相关文章

网友评论

      本文标题:初识 JSPatch

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