-
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(deeplinks): Add Ionic Deeplinks Plugin
- Loading branch information
Showing
2 changed files
with
77 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
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,74 @@ | ||
import {Plugin, Cordova} from './plugin'; | ||
import {Observable} from 'rxjs/Observable'; | ||
|
||
export interface DeeplinkMatch { | ||
/** | ||
* The route info for the matched route | ||
*/ | ||
routeInfo: any; | ||
|
||
/** | ||
* The arguments passed to the route through GET params along with | ||
* any internal native data available as "extras" at the time | ||
* the route was matched (for example, Facebook sometimes adds extra data) | ||
*/ | ||
args: any; | ||
} | ||
|
||
/** | ||
* @name Ionic Deeplinks | ||
* @description This plugin handles deeplinks on iOS and Android for both custom URL scheme links | ||
* and Universal App Links. | ||
* | ||
* @usage | ||
* ```ts | ||
* import {IonicDeeplinks} from 'ionic-native'; | ||
* | ||
* ``` | ||
*/ | ||
@Plugin({ | ||
plugin: 'ionic-plugin-deeplinks', | ||
pluginRef: 'IonicDeeplink', | ||
repo: 'https://github.com/driftyo/ionic-plugin-deeplinks', | ||
platforms: ['iOS', 'Android'] | ||
}) | ||
export class Deeplinks { | ||
|
||
/** | ||
* Define a set of paths to match against incoming deeplinks. | ||
* | ||
* @param {paths} Define a set of paths to match against incoming deeplinks. | ||
* paths takes an object of the form { 'path': data }. If a deeplink | ||
* matches the path, the resulting path-data pair will be returned in the | ||
* promise result which you can then use to navigate in the app as you see fit. | ||
* @returns {Promise} Returns a Promise that resolves when a deeplink comes through, and | ||
* is rejected if a deeplink comes through that does not match a given path. | ||
*/ | ||
@Cordova({ | ||
observable: true | ||
}) | ||
static route(paths): Observable<DeeplinkMatch> {return; } | ||
|
||
/** | ||
* | ||
* This is a convenience version of `route` that takes a reference to a NavController | ||
* from Ionic 2, or a custom class that conforms to this protocol: | ||
* | ||
* NavController.push = function(View, Params){} | ||
* | ||
* This handler will automatically navigate when a route matches. If you need finer-grained | ||
* control over the behavior of a matching deeplink, use the plain `route` method. | ||
* | ||
* @param {paths} Define a set of paths to match against incoming deeplinks. | ||
* paths takes an object of the form { 'path': data }. If a deeplink | ||
* matches the path, the resulting path-data pair will be returned in the | ||
* promise result which you can then use to navigate in the app as you see fit. | ||
* | ||
* @returns {Promise} Returns a Promise that resolves when a deeplink comes through, and | ||
* is rejected if a deeplink comes through that does not match a given path. | ||
*/ | ||
@Cordova({ | ||
observable: true | ||
}) | ||
static routeWithNavController(navController, paths): Observable<DeeplinkMatch> {return; } | ||
} |