原理大概是:
利用Object-c的runtime机制,注入,劫持等手段动态处理一些逻辑(iOS7+)。
首先pod 引入pod 'JSPatch'。
然后在导入JavaScriptCore.framework和libz.tbd这2个包。
在AppDelegate.m里引入
#import<JSPatch/JPEngine.h>
接下来就是接入
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions;
在这里植入
[JPEngine startEngine];
[JPEngine evaluateScript:javascriptCode];
也可以把js代码下载到本地,通过[JPEngine evaluateScriptWithPath:JSPath];来处理。
记得就是这个js的迭代更新需要自己来完成。
js和oc的协议规则可查看规则
可以利用这个Hot fixed可以处理一些Object-c上的一些逻辑错误。直到你app上新版本,用Object-c来修复,而不用等AppStore审核,可以处理一些紧急的bug。
网友评论