(代码推送)Code Push

Code Push

由Microsoft支持iOS和Android的Cordova的CodePush插件。
欲了解更多信息,请参阅 https://github.com/ksachdeva/ionic2-code-push-example
Repo(备用): https://github.com/Microsoft/cordova-plugin-code-push

Installation(安装)

1.安装Cordova和Ionic原生插件:

$ ionic cordova plugin add cordova-plugin-code-push
$ npm install --save @ionic-native/code-push

2.添加插件到app's module

Supported platforms(支持平台)

Android
iOS

Usage(用法)

import { CodePush } from '@ionic-native/code-push';

constructor(private codePush: CodePush) { }

...

// note - mostly error & completed methods of observable will not fire
// as syncStatus will contain the current state of the update
this.codePush.sync().subscribe((syncStatus) => console.log(syncStatus));

const downloadProgress = (progress) => { console.log(`Downloaded ${progress.receivedBytes} of ${progress.totalBytes}`); }
this.codePush.sync({}, downloadProgress).subscribe((syncStatus) => console.log(syncStatus));

Instance Members(实例成员)

getCurrentPackage(packageSuccess, packageError)

获取当前的包信息。

参数 类型 详情
packageSuccess 使用当前部署的包信息时被调用的回调。
packageError 出现错误的时候被调用的可选回调.

****Returns:** Promise

getPendingPackage()

获取待处理的包信息(如果有)。 待处理的包是已经安装的包,但应用程序仍然运行旧的代码。 只有在使用ON_NEXT_RESTART或ON_NEXT_RESUME模式安装软件包之后,才会发生这种情况,但应用程序尚未重新启动/恢复。
****Returns:** Promise

checkForUpdate(querySuccess, queryError, deploymentKey)

与CodePush服务器进行检查是否有更新包可供下载。

参数 类型 详情
querySuccess 在服务器响应成功的情况下调用回调函数。 回调需要一个RemotePackage参数。 非空包是有效的更新。 空包意味着应用程序是当前本机应用程序版本的最新版本。
queryError 出现错误的时候被调用的可选回调.
deploymentKey 覆盖config.xml设置的可选部署密钥。

****Returns:** Promise

notifyApplicationReady(notifySucceeded, notifyFailed)

通知插件更新操作成功并且应用程序准备就绪。 更新后,首次运行时需要调用此功能。 在每个后续的应用程序运行,调用这个函数是一个noop。 如果使用sync API,则不需要调用此函数,因为同步在内部调用它。

参数 类型 详情
notifySucceeded 如果插件已成功通知,则调用可选的回调。
notifyFailed 在通知插件时发生错误的情况下调用可选回调。

****Returns:** Promise

restartApplication()

重新加载应用程序。 如果使用ON_NEXT_RESTART或ON_NEXT_RESUME模式安装了未完成的更新程序包,则该更新将立即显示给用户。 否则,调用此函数将简单地重新加载当前版本的应用程序。
****Returns:** Promise

sync(syncCallback, syncOptions, downloadProgress)

在一种方法调用中安装更新的便利方法。 为方便起见,提供了此方法可以通过使用window.codePush.checkForUpdate(),RemotePackage的download()和LocalPackage的install()方法来代替。
该方法的算法如下:

  • 检查CodePush服务器上的更新。
  • 如果更新可用 - 如果更新是必需的,并且在选项中设置了alertMessage,则会通知用户应用程序将更新为最新版本。 然后更新包将被下载并应用。 - 如果更新不是强制性的,并且在选项中设置了confirmMessage,则会询问用户是否要更新到最新版本。 如果它们拒绝,SyncCallback将被调用SyncStatus.UPDATE_IGNORED。 - 否则,更新包将被下载并应用,没有用户交互。
  • 如果服务器上没有可用的更新,或者如果以前的回滚更新可用,并且ignoreFailedUpdates设置为true,则syncCallback将使用SyncStatus.UP_TO_DATE调用。
  • 如果在检查更新,下载或安装过程中发生错误,SyncCallback将使用SyncStatus.ERROR调用。
参数 类型 详情
syncCallback 使用同步操作的状态调用可选的回调。
syncOptions 可选的SyncOptions参数配置同步操作的行为。
downloadProgress 可选回调在下载过程中调用。 它被称为多次与一个下载进度参数。

****Returns:** Observable

你可能感兴趣的:((代码推送)Code Push)