-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(firebase-dynamic-links): add firebase dynamic links plugin (#1649)
- Loading branch information
1 parent
3eb69b4
commit 0467a0d
Showing
1 changed file
with
85 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
* <platform name="android"> | ||
* <preference name="GoogleIOSClientId" value="..." /> | ||
* </platform> | ||
* <platform name="ios"> | ||
* <preference name="GoogleAndroidClientId" value="..." /> | ||
* </platform> | ||
* ``` | ||
* @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<any>} Returns a promise | ||
*/ | ||
@Cordova() | ||
onDynamicLink(): Promise<any> { return; } | ||
|
||
/** | ||
* Display invitation dialog. | ||
* @param options {DynamicLinksOptions} Some param to configure something | ||
* @return {Promise<any>} Returns a promise | ||
*/ | ||
@Cordova() | ||
sendInvitation(options: DynamicLinksOptions): Promise<any> { return; } | ||
|
||
} |