diff --git a/CHANGELOG.md b/CHANGELOG.md index caae186a4..ccc8c092c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -## [4.3.1](https://github.com/ionic-team/ionic-native/compare/v4.3.0...v4.3.1) (2017-10-06) +## [4.3.2](https://github.com/ionic-team/ionic-native/compare/v4.3.0...v4.3.2) (2017-10-06) ### Bug Fixes @@ -11,6 +11,7 @@ ### Features +* **pro:** Add support for Ionic Pro by incorporating cordova-plugin-ionic ([465d551](https://github.com/ionic-team/ionic-native/commit/465d551)) * **regula-document-reader:** separate initialization and scanning, add android ([#2013](https://github.com/ionic-team/ionic-native/issues/2013)) ([2179699](https://github.com/ionic-team/ionic-native/commit/2179699)) @@ -1797,13 +1798,13 @@ The whole implementation has changed now. You must update your code. * **geolocation:** call correct clearFunction ([9e86a40](https://github.com/ionic-team/ionic-native/commit/9e86a40)) * **plugin:** return originalMethod return value ([240f0f8](https://github.com/ionic-team/ionic-native/commit/240f0f8)) * **plugin:** use call for id based clearFunction ([c2fdf39](https://github.com/ionic-team/ionic-native/commit/c2fdf39)) -* datepicker plugin, pluginref, and [@Cordova](https://github.com/Cordova) wrapper ([499ead3](https://github.com/ionic-team/ionic-native/commit/499ead3)) +* datepicker plugin, pluginref, and @Cordova wrapper ([499ead3](https://github.com/ionic-team/ionic-native/commit/499ead3)) ### Features * **DatePicker:** Added DatePicker ([5afa58f](https://github.com/ionic-team/ionic-native/commit/5afa58f)) -* **plugin:** add sync option to [@Cordova](https://github.com/Cordova) for sync functions ([17e3827](https://github.com/ionic-team/ionic-native/commit/17e3827)) +* **plugin:** add sync option to @Cordova for sync functions ([17e3827](https://github.com/ionic-team/ionic-native/commit/17e3827)) * **plugin:** call clearFunction with original fn args ([8f27fc9](https://github.com/ionic-team/ionic-native/commit/8f27fc9)) * add app version plugin ([20cb01f](https://github.com/ionic-team/ionic-native/commit/20cb01f)) * add app version plugin ([8b78521](https://github.com/ionic-team/ionic-native/commit/8b78521)) diff --git a/src/@ionic-native/plugins/pro/index.ts b/src/@ionic-native/plugins/pro/index.ts new file mode 100644 index 000000000..8a5f2f43c --- /dev/null +++ b/src/@ionic-native/plugins/pro/index.ts @@ -0,0 +1,170 @@ +import { Injectable } from '@angular/core'; +import { Plugin, Cordova, CordovaInstance, IonicNativePlugin } from '@ionic-native/core'; + +/** + * Information about the currently running app + */ +export interface AppInfo { + platform: string; + platformVersion: string; + version: string; + bundleName: string; + bundleVersion: string; +} + +/** + * Information about the current live update + */ +export interface DeployInfo { + deploy_uuid: string; + channel: string; + binary_version: string; +} + +/** + * @hidden + */ +export class ProDeploy { + + constructor(private _objectInstance: any) { } + + /** + * Re-initialize Deploy plugin with a new App ID and host. Not used in most cases. + * @param appId An Ionic Pro app ID + * @param host An Ionic Pro live update API + */ + @CordovaInstance() + init(appId: string, host: string): Promise { return; } + + @CordovaInstance() + debug(): Promise { return; } + + @CordovaInstance() + clearDebug(): Promise { return; } + + /** + * Check a channel for an available update + * @param appId An Ionic Pro app ID + * @param channelName An Ionic Pro channel name + */ + @CordovaInstance() + check(appId: string, channelName: string): Promise { return; } + + /** + * Download an available version + * @param appId An Ionic Pro app ID + */ + @CordovaInstance() + download(appId: string): Promise { return; } + + /** + * Unzip the latest downloaded version + * @param appId An Ionic Pro app ID + */ + @CordovaInstance() + extract(appId: string): Promise { return; } + + /** + * Reload app with the deployed version + * @param appId An Ionic Pro app ID + */ + @CordovaInstance() + redirect(appId: string): Promise { return; } + + /** + * Get info about the version running on the device + * @param appId An Ionic Pro app ID + */ + @CordovaInstance() + info(appId: string): Promise { return; } + + /** + * List versions stored on the device + * @param appId An Ionic Pro app ID + */ + @CordovaInstance() + getVersions(appId: string): Promise { return; } + + /** + * Delete a version stored on the device by UUID + * @param appId An Ionic Pro app ID + * @param version A version UUID + */ + @CordovaInstance() + deleteVersion(appId: string, version: string): Promise { return; } +} + +/** + * @name Pro + * @description + * This plugin enables Ionic Pro services like live updates and error monitoring + * + * @usage + * ```typescript + * import { Pro, AppInfo, DeployInfo } from '@ionic-native/pro'; + * + * + * constructor(private pro: Pro) { } + * + * // Get app info + * this.pro.getAppInfo().then((res: AppInfo) => { + * console.log(res) + * }) + * + * // Get live update info + * this.pro.deploy.info().then((res: DeployInfo) => { + * console.log(res) + * }) + * ``` + */ +@Plugin({ + pluginName: 'Pro', + plugin: 'cordova-plugin-ionic', + pluginRef: 'IonicCordova', + repo: 'https://github.com/ionic-team/cordova-plugin-ionic', + platforms: ['Android', 'iOS'], + install: 'ionic cordova plugin add cordova-plugin-ionic --save --variable APP_ID="XXXXXXXX" --variable CHANNEL_NAME="Channel"' +}) +@Injectable() +export class Pro extends IonicNativePlugin { + /** + * Ionic Pro Deploy .js API. + */ + deploy: ProDeploy = new ProDeploy(Pro.getPlugin().deploy); + + /** + * Not yet implemented + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + enableCrashLogging(): Promise { return; } + + /** + * Not yet implemented + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + checkForPendingCrash(): Promise { return; } + + /** + * Not yet implemented + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + loadPendingCrash(): Promise { return; } + + /** + * Not yet implemented + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + forceCrash(): Promise { return; } + + /** + * Get information about the currently running app + * @return {Promise} Returns a promise that resolves with current app info + */ + @Cordova() + getAppInfo(): Promise { return; } +} +