JSPatch ios
ios開發不能不知的動態修復bug補丁第三方庫JSPatch 使用學習:JSPatch導入、和使用、.js文件傳輸加解密git
ios開發面臨審覈週期長,修復bug延遲等讓人無奈的問題,因此,熱修復的產生成爲必然。github
ios上線APP產生bug,須要及時修復,如何修復:jsp
我整理了jspatch的使用說明,並創建一個簡單demo供他人使用和學習,此博客不作詳細介紹,具體如何使用附上代碼地址:學習
代碼下載地址: https://github.com/niexiaobo/JSPatchUseui
##### demo.js裏添加代碼:一、重寫crashBtnClick方法 二、跳轉新建的JPTableViewController控制器spa
//一、修改ViewController控制器的handleBtn方法(原控制器漏此方法,會致使崩潰)。 defineClass('ViewController', {//defineClass:聲明要被修改的控制器 crashBtnClick: function(sender) { //聲明要被修改或重寫的方法 var tableViewCtrl = JPTableViewController.alloc().init() self.navigationController().pushViewController_animated(tableViewCtrl, YES) }, }) //二、新建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()) } }) ##### 更新頻率