linking.addEventListener не работает для ios, когда приложение находится на переднем плане

#react-native #push-notification #linker #deep-linking

#react-native #push-уведомление #компоновщик #глубокая компоновка

Вопрос:

Для ios, если push-уведомление получено, когда приложение находится на переднем плане, когда пользователь нажимает на push-уведомление, Linking.addEventListener не выполняется.

Требуется переместить пользователя на определенную страницу после нажатия push-уведомления.

Если приложение не запущено или приложение открыто, но в фоновом режиме. В обоих случаях Linking.addEventListener работает должным образом.

** Код из appdelegate.m

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  return [RCTLinkingManager application:application openURL:url
                      sourceApplication:sourceApplication annotation:annotation];
}

// Only if your app is using [Universal Links](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html).
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
  return [RCTLinkingManager application:application
                   continueUserActivity:userActivity
                     restorationHandler:restorationHandler];
}

 

react-собственный код для обработки глубоких ссылок

 if (Platform.OS === 'android') {
      Linking.getInitialURL().then(url => {
        const { navigate } = this.props.navigation;
        let c = url.replace("abcdapp://abcd/", "")
        navigate(c)    
        });

    } else {
      Linking.addEventListener('url', this.handleOpenURL);
    }
    Linking.addEventListener('url', this.handleOpenURL);
 

Комментарии:

1. Вы решаете это?

2. Вы решили эту проблему, если да, пожалуйста, помогите мне, я также сталкиваюсь с этой проблемой для IOS.