Ionic使用cordova-hot-code-push实现热更新

前言

使用ionic+angularjs做混合应用开发也有一段时间了,在这个过程上最痛苦的事情莫过于更新,每次都需要焦急的等上几天时间。伟大的乔帮主强大的控制欲在他离世多年后的今天依然影响着我。热更是用于解决小版本更新,也就是说并不是所有的更新cordova-hot-code-push都能帮你做,具体可以参考插件的官方wiki.

依赖

  • cordova-hot-code-push
  • angularjs
  • ionic v1

实现

  • 首先需要有一个ionic工程(具体可参考ionic官网)
  • cd 到工程目录下
  • 安装cordova-hot-code-push-plugin插件
    cordova plugin add cordova-hot-code-push-plugin
  • 安装cordova-hot-code-push-local-dev-addon
    cordova plugin add cordova-hot-code-push-local-dev-addon
  • npm install -g cordova-hot-code-push-cli
  • 运行cordova-hcp build,命令完成之后在项目的www目录下会生成chcp.json和chcp.manifest两个文件
  • 修改config.xml(url所指向的路径后面会说明,native-interface指的是当前最小内核版本)



  • 修改chcp.json(content_url更新文件放的路径,release版本号,min_native_interface适用的最小内核版本【一定是整数,这个千万别弄错了】)
    {
    "content_url": "http://serverhost:serverport/hotcode/test/www",
    "release": "2017.03.23-15.12.24",
    "min_native_interface": 1
    }
  • 搭建自己的热更新服务,其实就是在tomcat下放个空项目,然后在空项目的前端根目录下把www的内容都放进去,启动tomcat,前几步说的serverhost和serverport指向tomcat
  • 运行cordova build,然后把安装包装到测试机上
  • 随便修改一个js(www目录里的),然后运行cordova-hcp build
  • 把chcp.json按上面的格式修改一下,注意别把这动生成的版本号给改了
  • 把www里的东西拷到tomcat的hotcode相应的目录下
  • 等一会儿(差不多5分钟),测试机上就会自动更新了

经验

  • 最好在服务端加一个filter,这样就可以看到是否有去服务端加载资源了
  • 如果等了有点久,手机端还是没有什么反应,这时间把手机端进程手动杀了,再进应用就好了

你可能感兴趣的:(ionic,angular)