美文网首页
【ReactNative】热更新(实战篇)

【ReactNative】热更新(实战篇)

作者: Draven_Lu | 来源:发表于2017-11-26 14:20 被阅读62次

    写在前面:这里只讲实现热更新的增量更新.想要了解更新的其他方式或者是不同方式的比较请自行研究.

    我的学习思路:

    一.

    目前成熟的方案有RN中文网的Pushy,Google提供的react-native-code-push.这两个的实现思路相差无几,只不过是服务器所在地不同,且Pushy方便你用写好的功能模块来搭建自己的热更新服务.先按照GitHub 上的例子走一遍.

    二.

    在你成功的使用这些成熟的方案后,仔细看看人家的代码.然后尝试下自己也写一套自己的热更新方案

    下面我们就看下怎么模仿Pushy 写自己的热更新吧

    开始

    1 要做什么:

    S1:生成增量包
    S2:把增量包放自己的服务上
    S3:RN客户端检查更新状态
    S4:如果需要更新,选择更新方式,并且使用新的脚本或者资源文件

    2 怎么做

    了解了我们要做的事情后,就来看看Pushy 怎么做的(当然,有问题欢迎随便拍砖,我头铁)

    react-native-update.jpeg

    上图中的android 和ios 文件夹对于移动端的同学可能很好懂,这里就不赘述了.
    docs 则是整个pushy的使用说明,和GitHub 里面的是一样的
    package.json 则记录了一些依赖库,npm安装的信息(不用过度关注)
    我们主要是看local-cli里面的代码

    react-native-update-2.jpeg
    这里都是些工具类,包括output diff patch ,upload patch ,patch bind to APPVersion
    然而这些功能都是需要输出到command tool 给大家使用的.对于这些用commanJS写的,我一个小白表示看不大懂.

    user.js 用来和pushy 的用户校验有关,我们刚开始的不管,赞不做登录功能

    bundle.js 命令行工具中的bundlediffdiffFromIpadiffFromApk四个功能主要就在这个文件中了

    package.js 主要是负责生成各种包这一块的

    app.js 则是增删patch,.ipa(.apk)

    version.js 将patch和APP 绑定用,就是告诉客户端,那个版本的APP需要更新(未绑定的版本则不会监测到是否需要更新)

    3 实战

    知道了别人怎么做的之后,我们利用bundle.js 中的bundlediffdiffFromIpadiffFromApk 功能做一套自己的东西.

    相关文章

      网友评论

          本文标题:【ReactNative】热更新(实战篇)

          本文链接:https://www.haomeiwen.com/subject/oiohjttx.html