Search code examples
reactjsreact-nativedeep-linkingios-universal-linksuniversal-link

React Native Universal Link Doesn't Trigger addEventListener


I have a working universal link it my website and I can read the link to fetch some data with getInitialUrl function but same universal link doesn't trigger addEventListener function.

  useEffect(() => {

dispatch(setLoaderScreen({}));
Linking.addEventListener('url', event => {
  console.log('event listener');
  if (event !== null) {
    if (String(event.url).includes('reset-page')) {
      props.navigation.navigate('Password');
      dispatch(setDeepLinkUrl({url: event.url}));
    }
  }
});

Linking.getInitialURL().then(url => {
  console.log('intial');
  if (url !== null) {
    if (String(url).includes('reset-page')) {
      props.navigation.navigate('Password');
      dispatch(setDeepLinkUrl({url: url}));
    }
  }
});


return () => {
  dispatch(closeLoader({}));
};}, []);

Solution

  • When I had this issue I realized I was missing this in my AppDelegate. It was part of the Linking documentation earlier, but I think React Native adds it automatically when creating your project now.

    - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity
    restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
    {
    return [RCTLinkingManager application:application
                     continueUserActivity:userActivity
                       restorationHandler:restorationHandler];
    }