登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

热修复iOS - 图片不知道上传啥

[复制链接]
来自: 达子号 分类: iOS精品源码 上传时间: 2019-3-13 23:44:13
Tag:

项目介绍:

HotFix使用说明

本热修复的主要功能描述

1.可以通过js替换项目中任意类的实例方法和类方法
2.可以在原来的方法之前和之后执行一些修正代码
3.可以修改原来方法的传入参数,然后在调用原方法

1.如何用CocoaPods安装

在你的Podfile文件中加上:
pod ‘LDHotFix’

2.如何使用

1.这里以本地js的方式演示,实际过程中js是从服务器下发的

    //hook 类方法
    fixClassMethod
    ('ProbleClass1','classMethod',
     function(instance, originInvocation,originArguments){
        runInvocation(originInvocation);
     });
     
    //hook 对象方法,
    fixInstanceMethod
    ('ProblemClass','test:value2:value3:',
     function(instance, originInvocation, originArguments){
       //原样执行原来的 方法
       runInvocation(originInvocation);
       //改变参数执行原来的方法
       runInvocation(originInvocation,['Float(3.141592653)','Int(81516741)','就是替换了']);
     });

    //修复方法
    fixInstanceMethod
    ('ProblemClass','divide:dd:',
     function(instance, originInvocation, originArguments){
        //如果传入的分母是0 则执行下面的代码
         if (originArguments[0] == '0') {
             //创建TestObject对象
             var objc = runClassWithParamters('TestObject','instance:','创建TestObject对象');
             console.log('test对象是:' + objc);
             //执行对象的方法
             var objc1 = runInstanceWithParamters(objc,'show:name2:name3:name4:name5:name6:','我是','曾令达',' 喜欢这个热修复的','请帮我点个星','有问题可以联系我','  微信:81516741');
             console.log('调用对象方法的返回值' + objc1);
             //执行类方法
             runClassWithParamters('TestObject','log:str:','调用Class方法:我在','马路边');
             console.log('因为此时传入的参数是分母为零,所以下句代码不执行');
         }else {//不为0 就执行原来的方法
             runInvocation(originInvocation);
         }
     });

2.在 Appdelegate 里面执行如下代码

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      //注册
       [LDHotfixTool registerHotfix];
      //加载本地js
       NSString * jsPath = [[NSBundle mainBundle] pathForResource:@"fix" ofType:@"js"];
       NSString * jsStr  = [NSString stringWithContentsOfFile:jsPath encoding:NSUTF8StringEncoding error:nil];                                              
      //用js修复
       [LDHotfixTool evaluateScript:jsStr];
        return YES;
    }

3.核心文件 LDHotfix

具体如何使用,请下载示例,使用非常简单,如有问题欢迎联系我,微信号 81516741
GitHub Demo地址:https://github.com/81516741/LDHotFix 用心之作,喜欢的帮我点个星

相关源码推荐:

我来说两句
*滑动验证:
所有评论(10)
littleRed 2019-3-14 10:15:49
感谢分享,code4app有你更精彩
回复
应用安卓 2019-3-14 10:16:04
帮帮顶顶!!
回复
op568f 2019-3-14 10:16:21
内容很好,棒棒哒
回复
A7472 2019-3-14 10:16:41
学习...学习...
回复
乱世佳人520 2019-3-14 10:16:49
写的真的很不错
回复
这是个逗比 2019-3-14 10:17:06
code4app好的代码demo真的很多,谢谢啦~
回复
mission350125 2019-3-14 16:27:48
感谢分享,Code4App有你更精彩
回复
qiaokeshushu 2019-3-19 14:27:26
使用这种方法,苹果审核会拒绝吗?有人用过吗?
回复
blessjuan 2019-3-22 14:35:12
感谢分享,Code4App有你更精彩
回复
12下一页
796 2 0
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表
博聚网