JSPatch 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
JSPatch 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: C/C++ 查看源码 »
操作系统: iOS
收录时间: 2020-03-24
提 交 者: 白开水不加糖

JSPatch 可以让你用 JavaScript 书写原生 iOS APP。只需在项目引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C 的原生接口,获得脚本语言的优势:为项目动态添加模块,或替换项目原生代码动态修复 bug。

例如线上 APP 有一段代码出现 bug 导致 crash:

@implementation JPTableViewController
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  NSString *content = self.dataSource[[indexPath row]];  //可能会超出数组范围导致crash
  JPViewController *ctrl = [[JPViewController alloc] initWithContent:content];
  [self.navigationController pushViewController:ctrl];
}
...
@end

可以通过下发这样一段 JS 代码,覆盖掉原方法,修复这个 bug:

//JS
defineClass("JPTableViewController", {
  //instance method definitions
  tableView_didSelectRowAtIndexPath: function(tableView, indexPath) {
    var row = indexPath.row()
    if (self.dataSource().length > row) {  //加上判断越界的逻辑
      var content = self.dataArr()[row];
      var ctrl = JPViewController.alloc().initWithContent(content);
      self.navigationController().pushViewController(ctrl);
    }
  }
}, {})

除了修复 bug,JSPatch 也可以用于动态运营,实时修改线上 APP 行为,或动态添加功能。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

JSPatch 的相关资讯

还没有任何资讯

JSPatch 的相关博客

JSPatch的应用

一个刁刁的框架在项目中的应用.

JSPatch 热更新

JSPatch 是一个 iOS 动态更新框架,只需在项目中引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C/Swift 原生接口...

JSPatch - 动态更新iOS APP

JSPatch是最近业余做的项目,只需在项目中引入极小的引擎,就可以使用JavaScript调用任何Objective-C的原生接口,获得脚本语言...

热更新JSPatch学习:

热更新的基础理论和需求原因就不介绍了,不清楚的可以百度,APP线上修复bug类似于游戏的补丁修复,这里给出几个可行的技术方案...

【腾讯Bugly干货分享】JSPatch 成长之路

JSPatch 是 iOS 上的动态更新框架,只需要引入小小的引擎文件,就可以用 JS 调用和替换任意 OC 方法。目前被普遍用于实时修复...

iOS中动态更新补丁策略JSPatch运用基础二

JSPatch是GitHub上一个开源的JavaScript与objective-c动态交互的框架,其可以通过run-time机制动态的调用和替换objective-c的...

iOS中动态更新补丁策略JSPatch运用基础一

JSPatch是GitHub上一个开源的JavaScript与objective-c动态交互的框架,其可以通过run-time机制动态的调用和替换objective-c的...

JSPatch – 动态更新iOS APP

JSPatch使用JavaScript调用任何Objective-C的原生接口,获得脚本语言的能力:动态更新APP,替换项目原生代码修复bug。...

JSPatch 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
1 收藏
分享
返回顶部
顶部