From 0467a0dd329cefc5ceaf3159bb367d6fb4214361 Mon Sep 17 00:00:00 2001 From: Daniel Sogl Date: Sun, 4 Jun 2017 00:24:07 +0200 Subject: [PATCH] feat(firebase-dynamic-links): add firebase dynamic links plugin (#1649) --- .../plugins/firebase-dynamic-links/index.ts | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 src/@ionic-native/plugins/firebase-dynamic-links/index.ts diff --git a/src/@ionic-native/plugins/firebase-dynamic-links/index.ts b/src/@ionic-native/plugins/firebase-dynamic-links/index.ts new file mode 100644 index 000000000..0aed3e2ae --- /dev/null +++ b/src/@ionic-native/plugins/firebase-dynamic-links/index.ts @@ -0,0 +1,85 @@ +import { Injectable } from '@angular/core'; +import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; + +export interface DynamicLinksOptions { + title: string; + message: string; + deepLink?: string; + callToActionText?: string; +} + +/** + * @beta + * @name Firebase Dynamic Links + * @description + * Cordova plugin for Firebase Invites and Firebase Dynamic Links + * + * Variables APP_DOMAIN and APP_PATH specify web URL where your app will start an activity to handle the link. They also used to setup support for App Indexing. + * + * Go to firebase console and export google-services.json and GoogleService-Info.plist. Put those files into the root of your cordova app folder. + * + * Preferences: + * + * Preferences GoogleIOSClientId and GoogleAndroidClientId are used to setup dynamic links when you have an app for several platforms. + * You can find values at your GoogleService-Info.plist (key ANDROID_CLIENT_ID) and google-services.json (key client[0].oauth_client[0].client_id). + * + *config.xml: + * ```xml + * + * + * + * + * + * + * ``` + * @usage + * ```typescript + * import { FirebaseDynamicLinks } from '@ionic-native/firebase-dynamic-links'; + * + * + * constructor(private firebaseDynamicLinks: FirebaseDynamicLinks) { } + * + * ... + * + * const options: DynamicLinksOptions = { + * title: 'My Title'; + * message: 'My message'; + * } + * + * this.firebaseDynamicLinks.sendInvitation(options) + * .then((res: any) => console.log(res)) + * .catch((error: any) => console.error(error)); + * + * ``` + * + * @interfaces + * DynamicLinksOptions + */ +@Plugin({ + pluginName: 'FirebaseDynamicLinks', + plugin: ' cordova-plugin-firebase-dynamiclinks', + pluginRef: 'cordova.plugins.firebase.dynamiclinks', + repo: 'https://github.com/chemerisuk/cordova-plugin-firebase-dynamiclinks', + install: 'ionic cordova plugin add cordova-plugin-firebase-dynamiclinks --save --variable APP_DOMAIN="example.com" --variable APP_PATH="/"', + installVariables: ['APP_DOMAIN', 'APP_PATH'], + platforms: ['Android', 'iOS'] +}) +@Injectable() +export class FirebaseDynamicLinks extends IonicNativePlugin { + + /** + * Registers callback that is triggered on each dynamic link click. + * @return {Promise} Returns a promise + */ + @Cordova() + onDynamicLink(): Promise { return; } + + /** + * Display invitation dialog. + * @param options {DynamicLinksOptions} Some param to configure something + * @return {Promise} Returns a promise + */ + @Cordova() + sendInvitation(options: DynamicLinksOptions): Promise { return; } + +}