JSPatch-How It Works
2015-12-02 18:59:13 0 举报
JSPatch是一个用于iOS应用的JavaScript补丁框架。它允许开发者在不发布新版本的情况下,实时修复或添加新功能到已发布的iOS应用中。JSPatch通过拦截和替换应用程序运行时的JavaScript代码来实现这一点。开发者可以在本地或服务器上创建补丁,然后通过JSPatch框架将这些补丁应用到目标应用上。这使得开发者能够快速、灵活地更新和维护他们的iOS应用,而无需经过繁琐的应用审核和发布过程。总之,JSPatch为iOS开发者提供了一个强大的工具,使他们能够更高效地管理和更新他们的应用。
作者其他创作
大纲/内容
defineClass( \"FFPlazaViewController\
[JPEngine startEngine]:1.注册OC代码到JSContext中供JS调用;2.执行JSPatch.jscontext[@\"_OC_defineClass\"];context[@\"_OC_callI\"];context[@\"_OC_callC\"];context[@\"_OC_formatJSToOC\"];context[@\"_OC_formatOCToJS\"];......[_context evaluateScript:jsCore];
In OC
context[@\"_OC_callI\
return {\"__obj\": view}
Our Patch.js
{__clsName: \"UIView\"}.__c(\"alloc\")().__c(\"init\")()
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature];[invocation setTarget: UIView];[invocation setSelector:@Selector(alloc)];[invocation setArgument:......];[invocation invocate];id view;[invocation getReturnValue: &view];return {@\"__obj\": view};
JSPatch.js
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature];[invocation setTarget: view];[invocation setSelector:@Selector(init)];[invocation setArgument:......];[invocation invocate];id view;[invocation getReturnValue: &view];return {@\"__obj\": view};
In JS
instance == nil
{\"__obj\": view}.__c(\"init\")()
JPEngine.m
context[@\"_OC_callC\
正则表达式处理后
{return _OC_callC(\"UIView\
0 条评论
回复 删除
下一页