add SafariViewController plugin, closes #195

This commit is contained in:
Ibrahim Hadeed 2016-06-09 10:05:38 -04:00
parent 62286db249
commit d337cbdd69

View File

@ -0,0 +1,101 @@
import {Plugin, Cordova} from './plugin';
/**
* @name SafariViewController
* @description
* @usage
* ```
* import {SafariViewController} from 'ionic-native';
*
* ...
*
* SafariViewController.isAvailable()
* .then(
* (available) => {
* if(available){
*
* SafariViewController.show({
* utl: 'http://ionic.io',
* hidden: false,
* animated: false,
* transition: 'curl',
* enterReaderModeIfAvailable: true,
* tintColor: '#ff0000'
* })
* .then(
* (result: any) => {
* if(result.event === 'opened') console.log("Opened");
* else if(result.event === 'loaded') console.log("Loaded");
* else if(result.event === 'closed') console.log("Closed");
* },
* (error: any) => console.error(error)
* );
*
* } else {
* // use fallback browser, example InAppBrowser
* }
* }
* );
* ```
*/
@Plugin({
plugin: 'cordova-plugin-safariviewcontroller',
pluginRef: 'SafariViewController',
platforms: ['iOS'],
repo: 'https://github.com/EddyVerbruggen/cordova-plugin-safariviewcontroller'
})
export class SafariViewController {
/**
* Checks if SafariViewController is available
*/
@Cordova()
static isAvailable(): Promise<boolean> {return; }
/**
* Shows Safari View Controller
* @param options
*/
@Cordova({
callbackOrder: 'reverse'
})
static show(options?: SafariViewControllerOptions): void {}
/**
* Hides Safari View Controller
*/
@Cordova({
sync: true
})
static hide(): void {}
/**
* Tries to connect to the Chrome's custom tabs service. you must call this method before calling any of the other methods listed below.
*/
@Cordova()
static connectToService(): Promise<any> {return; }
/**
* Call this method whenever there's a chance the user will open an external url.
*/
@Cordova()
static warmUp(): Promise<any> {return; }
/**
* For even better performance optimization, call this methods if there's more than a 50% chance the user will open a certain URL.
* @param url
*/
@Cordova()
static mayLaunchUrl(url: string): Promise<any> {return; }
}
export interface SafariViewControllerOptions {
url?: string;
hidden?: boolean;
toolbarColor?: string;
animated?: boolean;
showDefaultShareMenuItem?: boolean;
enterReaderModeIfAvailable?: boolean;
tintColor?: string;
transition?: string;
}