diff --git a/src/plugins/launchnavigator.ts b/src/plugins/launchnavigator.ts new file mode 100644 index 00000000..70805c37 --- /dev/null +++ b/src/plugins/launchnavigator.ts @@ -0,0 +1,92 @@ +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 + * LaunchNavigator.navigate("Toronto, ON", "London, ON") + * .then( + * success => console.log("Launched navigator"), + * error => console.log("Error launching navigator", error) + * ); + * ``` + */ +@Plugin({ + plugin: 'https://github.com/dpa99c/phonegap-launch-navigator.git', + 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) => {}); + } + +}