您的位置:首页 > Web前端 > JavaScript

JSPatch Loader 使用文档

2016-03-03 11:20 405 查看
JSPatch Loader 负责根据版本号向服务端拉取 JSPatch 代码,并对代码进行 RSA 校验/解压/执行,整个校验原理在 JSPatch
部署安全策略 这篇文章里详细说明,不再复述。


安装

拷贝 
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 只处理脚本校验,防止传输过程被第三方篡改,但不会对脚本内容进行加密传输和存储,对脚本内容有加密需求的可以自行加上加密逻辑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: