From 18df9a5aeb436ade2676c20137353fee58afd1d9 Mon Sep 17 00:00:00 2001 From: Ibrahim Hadeed Date: Sun, 6 Mar 2016 15:08:19 -0500 Subject: [PATCH] feat(plugin): add launch navigator https://github.com/driftyco/ionic-native/issues/18 --- src/plugins/launchnavigator.ts | 90 ++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/plugins/launchnavigator.ts diff --git a/src/plugins/launchnavigator.ts b/src/plugins/launchnavigator.ts new file mode 100644 index 0000000000..8b930090f6 --- /dev/null +++ b/src/plugins/launchnavigator.ts @@ -0,0 +1,90 @@ +import {Plugin, Cordova} from './plugin'; + +export interface launchNavigatorOptions { + + /** + * iOS, Android, Windows + * If true, the plugin will NOT attempt to use the geolocation plugin to determine the current device position when the start location parameter is omitted. Defaults to false. + */ + disableAutoGeolocation? : boolean, + + /** + * iOS, Android, Windows + * Transportation mode for navigation: "driving", "walking" or "transit". Defaults to "driving" if not specified. + */ + transportMode? : string, + + /** + * iOS + * If true, plugin will attempt to launch Google Maps instead of Apple Maps. If Google Maps is not available, it will fall back to Apple Maps. + */ + preferGoogleMaps? : boolean, + + /** + * iOS + * If using Google Maps and the app has a URL scheme, passing this to Google Maps will display a button which returns to the app. + */ + urlScheme? : string, + + /** + * iOS + * If using Google Maps with a URL scheme, this specifies the text of the button in Google Maps which returns to the app. Defaults to "Back" if not specified. + */ + backButtonText? : string, + + /** + * iOS + * If true, debug log output will be generated by the plugin. Defaults to false. + */ + enableDebug? : boolean, + + /** + * Android + * Navigation mode in which to open Google Maps app: "maps" or "turn-by-turn". Defaults to "maps" if not specified. + */ + navigationMode? : string, + +} + +/** + * + * Requires Cordova plugin: uk.co.workingedge.phonegap.plugin.launchnavigator. For more info, please see the [LaunchNavigator plugin docs](https://github.com/dpa99c/phonegap-launch-navigator). + * + * ``` + * cordova plugin add https://github.com/dpa99c/phonegap-launch-navigator.git + * ``` + * + * @usage + * ```js + * Badge.set(10); + * Badge.increase(); + * Badge.clear(); + * ``` + */ +@Plugin({ + plugin: 'https://github.com/dpa99c/phonegap-launch-navigator', + pluginRef: 'launchnavigator' +}) +export class LaunchNavigator { + + /** + * Launches navigator app + * @param destination Location name or coordinates + * @param start Location name or coordinates + * @param options + * @returns {Promise} + */ + @Cordova({ + successIndex: 2, + errorIndex: 3 + }) + static navigate(destination : any, start : any, options? : launchNavigatorOptions) : Promise { + // This Promise is replaced by one from the @Cordova decorator that wraps + // the plugin's callbacks. We provide a dummy one here so TypeScript + // knows that the correct return type is Promise, because there's no way + // for it to know the return type from a decorator. + // See https://github.com/Microsoft/TypeScript/issues/4881 + return new Promise((res, rej) => {}); + } + +}