JSPatch 热更新

JSPatch 有提供一个平台服务省心省力-->http://jspatch.com/

集成开发环境

官网的提示还是很清楚的-->http://jspatch.com/Docs/SDK

//推荐写法 如果开发推荐本地测试
[JSPatch startWithAppKey:@"xxx"];
[JSPatch sync];
// 本地测试用 会自动访问Bundle的main.js
//[JSPatch testScriptInBundle];

JSPatch使用

查看Github地址
查看文档 基本上看完就有感觉了

JPTableViewController(官方Demo)

defineClass('JPViewController', {
  handleBtn: function() {
  //重写JPViewController 里的handleBtn方法
   var tableViewCtrl = JPTableViewController.alloc().init()
   self.navigationController().pushViewController_animated(tableViewCtrl, YES)
})

defineClass('JPTableViewController : UITableViewController       ', ['data'], {
  dataSource: function() {
  var data = self.data();
  if (data) return data;
  var data = [];
  for (var i = 0; i < 20; i ++) {
    data.push("cell from js " + 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())
 }
})

注意事项

JSPatch 平台错误 error = "Document not found"

JSPatch js和oc变量混淆 字符串 / 数组 / 字典 操作问题

你可能感兴趣的:(JSPatch 热更新)