Code Push是微軟公司開發的平臺,我們可以利用這個平臺動態下發
Cordova
、React Native
App的最新代碼。(其實就是動態下發最新的 js/css/image 等資源文件,native的代碼不能動態下發)Ionic App本質上是基于Cordova的,所以也可以用這種方式來更新
以下是操作步驟
注意:Code Push服務器在國外(微軟的azure
云平臺),國內連接不穩定。
步驟
準備工作
// 安裝code-push cli
$ npm install -g code-push-cli
// 注冊帳號
$ code-push register
添加App
// 添加App后會獲得 Deployment Key,需要配置到config.xml中
$ code-push app add <appName>
┌────────────┬───────────────────────────────┐
│ Name │ Deployment Key │
├────────────┼───────────────────────────────┤
│ Production │xxxxxxxxxxxxxxxxxxxxxxxxxxxxx │
├────────────┼───────────────────────────────┤
│ Staging │ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │
添加插件
$ ionic plugin add cordova-plugin-code-push
$ npm install --save @ionic-native/code-push
$ ionic state save
$ cordova plugin save
配置 Deployment key
需要在config.xml中配置
<platform name="android">
<preference name="CodePushDeploymentKey" value="xxxxxxxxxxxxxxxxxxx" />
</platform>
<platform name="ios">
<preference name="CodePushDeploymentKey" value="xxxxxxxxxxxxxxxxxxx" />
</platform>
代碼檢查更新
// home.ts
import { CodePush } from '@ionic-native/code-push';
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [CodePush]
})
export class HomePage extends ISSPage
{
constructor(private codePush: CodePush) { }
checkUpdate()
{
this.codePush.sync().subscribe((syncStatus) => console.log(syncStatus));
}
}
發布版本
// 發布 Staging 版本
$ code-push release-cordova <appName> ios
// 發布 Production 版本
$ code-push release-cordova <appName> ios -d Production
// 查看已發布的版本
$ code-push deployment ls <appName> -k