cordova hot load - eju-front/mobile-solution GitHub Wiki
动态更新应用 www
目录下的 H5 相关本地资源
安装 CodePush 命令行工具
npm install -g code-push-cli
创建 CodePush 账号
code-push register
登录 CodePush 账号
code-push login
code-push app add <appName>
创建完成后命令行会显示 Production
和 Staging
两个 Deployment Key
,通常前者用于产品环境,后者用于测试环境
在工程目录下执行以下命令
cordova plugin add cordova-plugin-code-push@latest
然后修改 config.xml
,填入以下内容,并在对应处修改为创建应用时获得的 Deployment Key
。
<platform name="android">
<preference name="CodePushDeploymentKey" value="YOUR-ANDROID-DEPLOYMENT-KEY" />
</platform>
<platform name="ios">
<preference name="CodePushDeploymentKey" value="YOUR-IOS-DEPLOYMENT-KEY" />
</platform>
如果 config.xml
中允许访问的域名设置不是 <access origin="*" />
,则需要按照以下方式添加白名单
<access origin="https://codepush.azurewebsites.net" />
<access origin="https://codepush.blob.core.windows.net" />
<access origin="https://codepushupdates.azureedge.net" />
接着在页面头部添加以下元素
<meta http-equiv="Content-Security-Policy" content="default-src https://codepush.azurewebsites.net 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *" />
最后确认 cordova-plugin-whitelist 插件是否已经安装完成。
在应用需要进行检查更新的地方添加以下代码,一般在 deviceready
事件时执行
codePush.sync();
如果需要检测次数更频繁,可以按照以下代码在每次应用进入前台时检测
document.addEventListener("resume", function () {
codePush.sync();
});
通常 CodePush 检测到新版本后会下载新版本到本地并在下次启动后进行安装,对于强制更新的内容则会立即进行安装
如果需要定制弹出的对话框等个性化信息,可以查看 官方 API
执行以下命令进行 Release,CodePush 会自行管理每次 Release 的版本号
code-push release-cordova <appName> <platform> [-m] [--description <desc>] [-x]
-
-m
强制更新,默认更新会在应用下次启动时安装,强制更新则会弹出提示对话框 -
--description
更新内容的描述
除了以上基本命令,CodePush 还支持 A/B 测试
code-push release-cordova <appName> <platform> --rollout <percent>
-
--rollout
表示更新的群体所占比例,如25%
查看所有应用
code-push app ls
添加项目合作者,合作者需要已经注册了 CodePush
code-push collaborator add <appName> <collaboratorEmail>
查看部署历史记录
code-push deployment ls <appName> [-k]
-
-k
同时显示deployment key