JSPatch Loader 使用文档
2016-03-03 11:20
405 查看
JSPatch Loader 负责根据版本号向服务端拉取 JSPatch 代码,并对代码进行 RSA 校验/解压/执行,整个校验原理在 JSPatch
部署安全策略 这篇文章里详细说明,不再复述。
拷贝
设
自行生成 RSA 公钥私钥,替换
JSPatch 脚本文件规则:可以有多个 js 文件,脚本内可以调用
在命令行使用
示例
会在当前目录生成 v1.zip 文件,打包了所有 js 文件并包含了校验文件。也可以在最后通过
脚本文件名代表当前 patch 版本,与后续的
下载/更新脚本
客户端在得知服务端脚本有更新时,调用
举个例子,客户端当前 App 版本号为1.0,上述配置
执行脚本
通过
JSPatch 脚本过程中其他线程同时在执行相关代码,导致意想不到的问题。
在脚本文件还没打包上传到服务器前,可以先把文件加入项目工程 bundle 进行测试,加入后调用
JS 脚本里
注意 JSPatch Loader 只处理脚本校验,防止传输过程被第三方篡改,但不会对脚本内容进行加密传输和存储,对脚本内容有加密需求的可以自行加上加密逻辑。
部署安全策略 这篇文章里详细说明,不再复述。
安装
拷贝 Loader/目录下的文件到你的项目。
配置
设 JPLoader.h的
rootUrl为你的服务器地址。脚本文件在服务器的存放路径是
${rootUrl}/${appVersion}/${patchFile}
自行生成 RSA 公钥私钥,替换
JPLoader.h里的
publicKey和
tools/pack.php里的
privateKey。
使用
脚本打包
JSPatch 脚本文件规则:可以有多个 js 文件,脚本内可以调用 include()接口包含,没有目录层级,必须包含一个
main.js文件作为入口。
在命令行使用
Loader/tools/pack.php脚本打包 JS 文件,由用户放到自己的服务器上给客户端下载。
示例
$ php pack.php main.js other.js
会在当前目录生成 v1.zip 文件,打包了所有 js 文件并包含了校验文件。也可以在最后通过
-o指定输出文件名:
$ php pack.php main.js -o v2
脚本文件名代表当前 patch 版本,与后续的
+updateToVersion:callback:接口相关。
加载
下载/更新脚本
客户端在得知服务端脚本有更新时,调用
+updateToVersion:callback:接口下载对应版本的脚本。至于如何得知服务端脚本更新可以自行定义,可以另外加个请求每次唤醒时询问服务器,也可以在 APP 原有的请求里加上这个信息。
举个例子,客户端当前 App 版本号为1.0,上述配置
rootUrl变量配为
http://localhost/JSPatch/,服务端告诉客户端最新脚本版本号为2,于是调用
[JPLoader updateToVersion:2 callback:nil],这时会去请求
http://localhost/JSPatch/1.0/v2.zip这个文件并解压验证,保存到本地目录等待执行。
执行脚本
通过
+run接口执行已下载到本地的 JSPatch 脚本文件,建议在程序启动的
-application:didFinishLaunchingWithOptions:里第一句调用这个接口,防止调用后执行
JSPatch 脚本过程中其他线程同时在执行相关代码,导致意想不到的问题。
测试
在脚本文件还没打包上传到服务器前,可以先把文件加入项目工程 bundle 进行测试,加入后调用 +runTestScriptInBundle就会执行项目工程里的
main.js文件,并且
JS 脚本里
include()接口也可以正常使用。
其他
注意 JSPatch Loader 只处理脚本校验,防止传输过程被第三方篡改,但不会对脚本内容进行加密传输和存储,对脚本内容有加密需求的可以自行加上加密逻辑。
相关文章推荐
- JavaScript实现OATH动态口令算法
- JSONModel的使用
- javascript 高级程序设计 四
- JSP中自动计算填充
- json字符串转成对象
- js将json转成树html
- js进制间转换
- js之事件冒泡和事件捕获详细介绍
- JS动态增删表格行的方法
- JavaScript DateUtils
- javaScript的JSON字符串转换为JSON对象。
- javascript中的事件捕获机制,深入理解并区别IE和DOM中的事件模型
- JS时间操作
- JS中的!=、== 、!==、===的用法和区别。
- jsp和el基础
- JS数组去重
- 关于js用相对路径实现查看图片功能火狐和360无法正常访问的情况
- html+js 设为首页 完全兼容IE
- js 日期格式化
- js 中类似时钟的显示