您的位置:首页 > 移动开发 > IOS开发

[IOS]JSPatch

2016-07-05 17:24 169 查看

用途

修复线上出现的紧急crash,热更新

例子

demo

原理解读

在程序didFinishLaunch时候执行,[JPEngine startEngine],


startEngine做了对解析js代码模块的定义,放在JSContext对象中,举个例子,defineClass:

对脚本对象做parse。使用scanner分析传参,解析className,suplerClass,Method逐个定位获取参数,通过oc-runtime修改对象类



获取热更新脚本,可以服务器动态下载,or本地加载

解析脚本,[JPEngine evaluateScript:script],这边会用正则匹配一下方法转换成_c("funcName"),然后用javascriptcore做evaluateScript
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: