diff --git a/src/index.ts b/src/index.ts index 34d4d11ab3..951d8b9d56 100644 --- a/src/index.ts +++ b/src/index.ts @@ -64,6 +64,7 @@ import { LaunchNavigator } from './plugins/launchnavigator'; import { LocalNotifications } from './plugins/localnotifications'; import { MediaCapture } from './plugins/media-capture'; import { NativeAudio } from './plugins/native-audio'; +import { NativePageTransitions } from './plugins/native-page-transitions'; import { NativeStorage } from './plugins/nativestorage'; import { MediaPlugin } from './plugins/media'; import { Network } from './plugins/network'; @@ -122,6 +123,7 @@ export * from './plugins/launchnavigator'; export * from './plugins/localnotifications'; export * from './plugins/media'; export * from './plugins/media-capture'; +export * from './plugins/native-page-transitions'; export * from './plugins/printer'; export * from './plugins/push'; export * from './plugins/safari-view-controller'; @@ -255,6 +257,7 @@ window['IonicNative'] = { MediaCapture: MediaCapture, MediaPlugin: MediaPlugin, NativeAudio: NativeAudio, + NativePageTransitions: NativePageTransitions, NativeStorage: NativeStorage, Network: Network, Printer: Printer, diff --git a/src/plugins/native-page-transitions.ts b/src/plugins/native-page-transitions.ts new file mode 100644 index 0000000000..b35f726361 --- /dev/null +++ b/src/plugins/native-page-transitions.ts @@ -0,0 +1,86 @@ +import {Plugin, Cordova} from './plugin'; +/** + * @name NativePageTransitions + * @description + * The Native Page Transitions plugin uses native hardware acceleration to animate your transitions between views. You have complete control over the type of transition, the duration, and direction. + * + * @usage + * ``` + * import {NativePageTransitions, TransitionOptions} from 'ionic-native'; + * + * let options: TransitionOptions = { + * direction: 'up', + * duration: 500, + * slowdownfactor: 3, + * slidePixels: 20, + * iosdelay: 100, + * androiddelay: 150, + * winphonedelay: 250, + * fixedPixelsTop: 0, + * fixedPixelsBottom: 60 + * }; + * + * NativePageTransitions.slide(options) + * .then(onSuccess) + * .catch(onError); + * + * ``` + */ +@Plugin({ + plugin: 'com.telerik.plugins.nativepagetransitions', + pluginRef: 'plugins.nativepagetransitions', + repo: 'https://github.com/Telerik-Verified-Plugins/NativePageTransitions', + platforms: ['iOS', 'Android', 'Windows Phone'] +}) +export class NativePageTransitions { + /** + * Perform a slide animation + * @param options {TransitionOptions} Options for the transition + */ + @Cordova() + static slide(options: TransitionOptions): Promise {return; } + + /** + * Perform a flip animation + * @param options {TransitionOptions} Options for the transition + */ + @Cordova() + static flip(options: TransitionOptions): Promise {return; } + + /** + * Perform a fade animation + * @param options {TransitionOptions} Options for the transition + */ + @Cordova({platforms: ['iOS', 'Android']}) + static fade(options: TransitionOptions): Promise {return; } + + + /** + * Perform a slide animation + * @param options {TransitionOptions} Options for the transition + */ + @Cordova({platforms: ['iOS', 'Android']}) + static drawer(options: TransitionOptions): Promise {return; } + + + + /** + * Perform a slide animation + * @param options {TransitionOptions} Options for the transition + */ + @Cordova({platforms: ['iOS']}) + static curl(options: TransitionOptions): Promise {return; } + +} + +export interface TransitionOptions { + direction?: string; + duration?: number; + slowdownfactor?: number; + slidePixels?: number; + iosdelay?: number; + androiddelay?: number; + winphonedelay?: number; + fixedPixelsTops?: number; + fixedPixelsBottom?: number; +}