美文网首页
初识 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