美文网首页
JSPatch在项目中的运用

JSPatch在项目中的运用

作者: bluesea哈哈哈 | 来源:发表于2016-06-04 17:59 被阅读60次

    JSPatch是基于JavaScript的框架,而且看到很多项目在运用,eg:滴滴、猫眼等一些体量比较大的app在用,因此我想在我们APP里面运用。JSPatch用RSA算法来进行文件加密的验证

    1.首先我们要生成RSA算法用的密钥和公钥

       使用openssl命令行生成密钥对

    按照提示,填入私钥密码、签名证书的组织名、邮件等信息以后就会生成包含有公钥的证书文件public_key.der合私钥文件private_key.pem,利用终端输入 cat private_key.pem 可以查看私钥的数据

    私钥主要给服务器生成文件加密用的

    我们利用私钥是可以生成相对应的公钥的,把公钥放到客服端,来做验证

    2.接下来我们对JSPatch嵌入,我们没有用JSPatch提供的服务器,而是 我们自己的服务器,用自己的服务器,就牵涉到几个问题?1)什么时候去请求脚本,2)有脚本了怎么办, 3)同一个版本存在多个修复怎么办 4)不同的版本请求脚本的问题

    1)什么时候请求版本、每次启动APP的时候请求 

    2)有脚本了怎么办 ,我们会查看本地存在不,存在后,做进一步操作,不存在,直接下载脚本

    3)同一个版本存在多个修复怎么办  我们会在同一个版本下,有fix_num 来标志本版本修复数,一直在递增

    4)不同的版本请求脚本的问题 ,在启动的时候,我们会带上项目的版本号,来请求这个版本下的脚本

    所有我们设计接口是xxx/xxx?v=xxxx ,v表示版本号 返回的数据结构是

    {

    "url": "xxx",

    "v": "4.5.0",

    "file_name": "20160604142439.zip",

    "fix_num": 2

    }

    3 当我们传到服务器之前,首先自己要先测试下,也就是说,在我们代码中,对测试和线上来切换,因此我们来定义一个

    来进行切换,在本地测试好,在打包传到服务器

    接下来看下我们的处理逻辑

    首先来判断本地存储的有脚本的信息没有,如果没有,直接去请求脚本,如果有,比较版本号和fix_num,来进行脚本的下载

    4、接下来记录下转换网站遇到的坑

     1)如果你项目中有强制转换的类型,在调用的方法转换js的时候,不要带,否则会报错

    eg

    直接调用self.navigationController().setCanDragBack(YES);就可以了

    2)OC 中UIStatusBarAnimationNone等枚举,不会给你转换,所有需要你直接写上对应的数字

    3) for in 会遇到不识别的坑,用for(int i = 0 i < 10;i++)

    4)self.frame 获取宽高的问题,直接self.frame().width 和self.frame().height

    5)NSNotfound 转换成兼容64和32位的数字 

    6)self.setValue_forKey”方法实现“_week = week",用来这样修改self.setValue_forKey(week,"_week")”

    相关文章

      网友评论

          本文标题:JSPatch在项目中的运用

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