zoukankan      html  css  js  c++  java
  • ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密

    JSPatch

    ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密

    ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以,热修复的产生成为必然。

    ios上线APP产生bug,需要及时修复,如何修复:

    我整理了jspatch的使用说明,并建立一个简单demo供他人使用和学习,此博客不做详细介绍,具体如何使用附上代码地址:

    代码下载地址: https://github.com/niexiaobo/JSPatchUse

    ##### demo.js里添加代码:1、重写crashBtnClick方法 2、跳转新建的JPTableViewController控制器

        //1、修改ViewController控制器的handleBtn方法(原控制器漏此方法,会导致崩溃)。
    
        defineClass('ViewController', {//defineClass:声明要被修改的控制器
        crashBtnClick: function(sender) { //声明要被修改或重写的方法
        var tableViewCtrl = JPTableViewController.alloc().init()
        self.navigationController().pushViewController_animated(tableViewCtrl, YES)
        },
    
        })
    
        //2、新建JPTableViewController控制器
    
        defineClass('JPTableViewController : UITableViewController <UIAlertViewDelegate>', ['data'], {
        dataSource: function() {
        var data = self.data();
        if (data) return data;
        var data = [];
        for (var i = 0; i < 20; i ++) {
        data.push("通过js创建的cell " + i);
        }
        self.setData(data)
        return data;
        },
        numberOfSectionsInTableView: function(tableView) {
        return 1;
        },
        tableView_numberOfRowsInSection: function(tableView, section) {
        return self.dataSource().length;
        },
        tableView_cellForRowAtIndexPath: function(tableView, indexPath) {
        var cell = tableView.dequeueReusableCellWithIdentifier("cell") 
        if (!cell) {
        cell = require('UITableViewCell').alloc().initWithStyle_reuseIdentifier(0, "cell")
        }
        cell.textLabel().setText(self.dataSource()[indexPath.row()])
        return cell
        },
        tableView_heightForRowAtIndexPath: function(tableView, indexPath) {
        return 60
        },
        tableView_didSelectRowAtIndexPath: function(tableView, indexPath) {
        var alertView = require('UIAlertView').alloc().initWithTitle_message_delegate_cancelButtonTitle_otherButtonTitles("Alert",self.dataSource()[indexPath.row()], self, "OK",  null);
        alertView.show()
        },
        alertView_willDismissWithButtonIndex: function(alertView, idx) {
        console.log('click btn ' + alertView.buttonTitleAtIndex(idx).toJS())
        }
        })
    
    
     #####  更新频率
    
  • 相关阅读:
    【业务自动化】iTop,全面支持ITIL流程的一款ITSM工具
    【Hadoop】HDFS源码解读
    【Hadoop】Hadoop RPC框架线程模型
    电商网站项目(一)用户模块---门户
    jdk1.5后枚举类的定义规则
    回顾static与final的作用
    @Springboot搭建项目controller层接收json格式的对象失败
    把一个文件中所有文件名或者文件路径读取到一个txt文件,然后在matlab中读取
    springboot用mybatis-generator自动生成mapper和model
    hibernate、mybatis、spring data 的对比
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/5913593.html
Copyright © 2011-2022 走看看