标签:tps assm 平台 代码 修改 类的方法 finish 利用 1.0
JSPatch是一个轻量的JS引擎,能够使用JavaScript语言来调用任何object-c接口,替换任何原生的方法。目前主要用于发步JS脚本替换原生Objective-C代码,实时修复线上bug
利用OC语言的动态性,动态的修改类的方法和属性。在app启动的时候加载我们写好的JavaScript文件并通过JavaScriptCore来执行,用JS写好的类函数去篡改原有的OC函数。JSPatch只提供了篡改这个过程的代码,像部署线上Js代码、下载这些逻辑都得自己写。当然你可以用JSpatchSDK这个平台,这个平台帮我们部署JS代码、下载等一些逻辑。JSPatchSDK是收费的,也有免费版的。
通过pod或者其他方式引入JSPatch,在didFinishLaunchingWithOptions函数加上如下代码:
[JPEngine startEngine]; NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"js"]; NSString *script = [NSString stringWithContentsOfFile:sourcePath encoding:NSUTF8StringEncoding error:nil]; [JPEngine evaluateScript:script];
部署完OC代码,我们就可以在index.js专心写JavaScript来修复线上的bug.
defineClass(classDeclaration, [properties,] instanceMethods, classMethods)
classDeclaration:字符串类型,代表类名字
properties:一个字符串数组,代表要添加的属性列表
instanceMethods:实例方法
classMethods:累方法
defineClass( ‘MainViewController‘, { viewDidLoad:function(){ self.super().viewDidLoad(); self.view().setBackgroundColor(require(‘UIColor‘).redColor()); self.navigationController().setNavigationBarHidden(true); } } )
标签:tps assm 平台 代码 修改 类的方法 finish 利用 1.0
原文地址:http://www.cnblogs.com/shuigu/p/6215093.html