diff --git a/src/plugins/push.ts b/src/plugins/push.ts index b55caa0c3..b9c2031d3 100644 --- a/src/plugins/push.ts +++ b/src/plugins/push.ts @@ -296,10 +296,10 @@ export class Push { @Cordova() static hasPermission(){ // 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 + // 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<{ isEnabled: boolean }>((res, rej) => {}); } } diff --git a/src/plugins/sms.ts b/src/plugins/sms.ts new file mode 100644 index 000000000..4a0bbf3e5 --- /dev/null +++ b/src/plugins/sms.ts @@ -0,0 +1,64 @@ +import {Plugin, Cordova} from './plugin'; +import {isInstalled} from "./plugin"; +import {pluginWarn} from "./plugin"; + +export interface smsOptions { + + /** + * Set to true to replace \n by a new line. Default: false + */ + replaceLineBreaks : boolean, + + android : smsOptionsAndroid + +} + +export interface smsOptionsAndroid { + + /** + * Set to "INTENT" to send SMS with the native android SMS messaging. Leaving it empty will send the SMS without opening any app. + */ + intent : string + +} + +declare var sms : any; + +/** + * + * + * Requires Cordova plugin: cordova-plugin-sms. For more info, please see the [SMS plugin docs](https://github.com/cordova-sms/cordova-sms-plugin). + * + * ``` + * cordova plugin add cordova-plugin-sms + * ``` + * + * @usage + * ```js + * + * + * ``` + */ +@Plugin({ + plugin: 'cordova-plugin-sms', + pluginRef: 'sms' +}) +export class SMS { + + /** + * Sends sms to a number + * @param number [number] Phone number + * @param message [string] Message + * @param options [object] Options + * @param options.replaceLineBreaks [boolean] Set to true to replace \n by a new line. Default: false + * @param options.android.intent [string] Set to "INTENT" to send SMS with the native android SMS messaging. Leaving it empty will send the SMS without opening any app. + * @returns {Promise} + */ + static send(number : number, message : string, options : smsOptions) : Promise { + return new Promise((res, rej) => { + // TODO handle error in case plugin doesn't exist + sms.send(number, message, options, () => res(), (error : any) => rej(error)); + }); + } + +}