一) 加载js 和 编写js 的过程
-
将js 文件加入到项目中
-
加载js 代码
[JPEngine startEngine];
NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"mq" ofType:@"js"];
NSString *script = [NSString stringWithContentsOfFile:sourcePath encoding:NSUTF8StringEncoding error:nil];
[JPEngine evaluateScript:script];
- 编写脚本
fixInstanceMethod('BoxController', 'ViewWillHide', function(instance, originInvocation, originArguments){
runInvocation(originInvocation);
instance.removeMainView()
});
fixInstanceMethod('BoxController', 'ViewWillHide', function(instance, originInvocation, originArguments){
instance.setupBtnState()
});
fixInstanceMethod
代表需要做什么操作, 此处是方法替换, 有些是方法覆盖
BoxController
代表需要替换的是那个类里面的内容,
function(instance, originInvocation, originArguments){
是固定的写法
instance.removeMainView()
和instance.setupBtnState()
代表需要做的事情
instance.removeMainView()
是将BoxController里面的view 移除, BoxController必须有一个实例方法, 这个方法叫做removeMainView
同样的道理, 可以调用setupBtnState()
方法, 通过这样就可以进行一个简单的修复
二) 调试js
启动调试工具
首先需要开启 Safari 调试菜单:Safari -> 偏好设置 -> 高级 -> 勾选[在菜单栏中显示“开发”菜单]
接着启动APP -> Safari -> 开发 -> 选择你的机器 -> JSContext
即可开始调试。
连接真机调试时,需要打开真机的web检查器:设置 -> Safari -> 高级 -> Web检查器
三) jsPatch 资源汇聚
jspath 学习资源
JSPatch 三分钟快速集成
https://www.jianshu.com/p/2450ea30698f
js 转换工具
http://www.jspatch.com/Tools/convertor
JSPatch使用小记 介绍很好讲了 如何使用的技巧
https://www.cnblogs.com/dsxniubility/p/5080875.html
JSPatch 基础用法 官方文档
https://github.com/bang590/JSPatch/wiki/defineClass使用文档
网友评论