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
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<ILocalPackage>
获取待处理的包信息(如果有)。 待处理的包是已经安装的包,但应用程序仍然运行旧的代码。 只有在使用ON_NEXT_RESTART或ON_NEXT_RESUME模式安装软件包之后,才会发生这种情况,但应用程序尚未重新启动/恢复。
****Returns:** Promise<ILocalPackage>
checkForUpdate(querySuccess, queryError, deploymentKey)
与CodePush服务器进行检查是否有更新包可供下载。
参数 | 类型 | 详情 |
---|---|---|
querySuccess | 在服务器响应成功的情况下调用回调函数。 回调需要一个RemotePackage参数。 非空包是有效的更新。 空包意味着应用程序是当前本机应用程序版本的最新版本。 | |
queryError | 出现错误的时候被调用的可选回调. | |
deploymentKey | 覆盖config.xml设置的可选部署密钥。 |
****Returns:** Promise<IRemotePackage>
notifyApplicationReady(notifySucceeded, notifyFailed)
通知插件更新操作成功并且应用程序准备就绪。 更新后,首次运行时需要调用此功能。 在每个后续的应用程序运行,调用这个函数是一个noop。 如果使用sync API,则不需要调用此函数,因为同步在内部调用它。
参数 | 类型 | 详情 |
---|---|---|
notifySucceeded | 如果插件已成功通知,则调用可选的回调。 | |
notifyFailed | 在通知插件时发生错误的情况下调用可选回调。 |
****Returns:** Promise<void>
restartApplication()
重新加载应用程序。 如果使用ON_NEXT_RESTART或ON_NEXT_RESUME模式安装了未完成的更新程序包,则该更新将立即显示给用户。 否则,调用此函数将简单地重新加载当前版本的应用程序。
****Returns:** Promise<void>
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<SyncStatus>
网友评论
这句代码 加在那个文件中呢