@@ -7,6 +7,7 @@ import Screen from './Screen';
77import PropRegistry from './PropRegistry' ;
88
99const registeredScreens = { } ;
10+ const _allNavigatorEventHandlers = { } ;
1011
1112function registerScreen ( screenID , generator ) {
1213 registeredScreens [ screenID ] = generator ;
@@ -134,6 +135,25 @@ function startSingleScreenApp(params) {
134135 return platformSpecific . startSingleScreenApp ( params ) ;
135136}
136137
138+ function setEventHandler ( navigatorEventID , eventHandler ) {
139+ _allNavigatorEventHandlers [ navigatorEventID ] = eventHandler ;
140+ }
141+
142+ function clearEventHandler ( navigatorEventID ) {
143+ delete _allNavigatorEventHandlers [ navigatorEventID ] ;
144+ }
145+
146+ function handleDeepLink ( params = { } ) {
147+ if ( ! params . link ) return ;
148+ const event = {
149+ type : 'DeepLink' ,
150+ link : params . link
151+ } ;
152+ for ( let i in _allNavigatorEventHandlers ) {
153+ _allNavigatorEventHandlers [ i ] ( event ) ;
154+ }
155+ }
156+
137157export default {
138158 getRegisteredScreen,
139159 registerComponent,
@@ -145,5 +165,8 @@ export default {
145165 showInAppNotification : showInAppNotification ,
146166 dismissInAppNotification : dismissInAppNotification ,
147167 startTabBasedApp : startTabBasedApp ,
148- startSingleScreenApp : startSingleScreenApp
168+ startSingleScreenApp : startSingleScreenApp ,
169+ setEventHandler : setEventHandler ,
170+ clearEventHandler : clearEventHandler ,
171+ handleDeepLink : handleDeepLink
149172} ;
0 commit comments