diff --git a/src/index.ts b/src/index.ts index f1a5a86e9..e08c85e4a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -84,6 +84,7 @@ import {TwitterConnect} from './plugins/twitter-connect'; import {Vibration} from './plugins/vibration'; import {VideoPlayer} from './plugins/video-player'; import {WebIntent} from './plugins/webintent'; +import {Zip} from './plugins/zip'; export * from './plugins/3dtouch'; export * from './plugins/background-geolocation'; export * from './plugins/backgroundmode'; @@ -166,7 +167,8 @@ export { TouchID, Transfer, Vibration, - WebIntent + WebIntent, + Zip } export * from './plugins/plugin'; @@ -251,7 +253,8 @@ window['IonicNative'] = { TwitterConnect: TwitterConnect, VideoPlayer: VideoPlayer, Vibration: Vibration, - WebIntent: WebIntent + WebIntent: WebIntent, + Zip: Zip }; initAngular1(window['IonicNative']); diff --git a/src/plugins/zip.ts b/src/plugins/zip.ts new file mode 100644 index 000000000..79cfeef4c --- /dev/null +++ b/src/plugins/zip.ts @@ -0,0 +1,39 @@ +import {Plugin, Cordova} from './plugin'; + +/** + * @name Zip + * @description + * A Cordova plugin to unzip files in Android and iOS. + * + * @usage + * ``` + * import {Zip} from 'ionic-native'; + * + * Zip.unzip('path/to/source.zip', 'path/to/dest', (progress) => console.log('Unzipping, ' + Math.round((progress.loaded / progress.total) * 100) + '%')) + * .then((result) => { + * if(result === 0) console.log('SUCCESS'); + * if(result === -1) console.log('FAILED'); + * }); + * + * ``` + */ +@Plugin({ + plugin: 'cordova-plugin-zip', + pluginRef: 'zip', + repo: 'https://github.com/MobileChromeApps/cordova-plugin-zip', +}) +export class Zip { + /** + * Extracts files from a ZIP archive + * @param sourceZip {string} Source ZIP file + * @param destUrl {string} Destination folder + * @param onProgress {Function} optional callback to be called on progress update + * @return {Promise} returns a promise that resolves with a number. 0 is success, -1 is error + */ + @Cordova({ + successIndex: 2, + errorIndex: 4 + }) + static unzip(sourceZip: string, destUrl: string, onProgress: Function): Promise {return; } + +}