美文网首页Cordova原生插件
(代码推送)Code Push

(代码推送)Code Push

作者: 待花谢花开 | 来源:发表于2017-07-04 16:31 被阅读1024次

    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<ILocalPackage>

    getPendingPackage()

    获取待处理的包信息(如果有)。 待处理的包是已经安装的包,但应用程序仍然运行旧的代码。 只有在使用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>

    相关文章

      网友评论

      • 我是码神:用法里的this.codePush.sync().subscribe((syncStatus) => console.log(syncStatus));
        这句代码 加在那个文件中呢
      • daozun:你好,我在启动的时候得到了这个错误:cordova_not_available,请问你遇到过么。
        心跳节奏:遇到了同样的问题,declare let cordova:any;这句加在哪呢
        daozun:@待花谢花开 嗯嗯,非常感谢
        待花谢花开:@daozun 使用的时候需要声明 declare let cordova:any;

      本文标题:(代码推送)Code Push

      本文链接:https://www.haomeiwen.com/subject/ewrxhxtx.html