Глубокая привязка ничего не делает на Android React Native

#react-native #react-navigation #deep-linking #react-navigation-v5 #react-native-deep-linking

#react-native #реакция-навигация #глубокая привязка #react-navigation-v5 #react-native-глубокая привязка

Вопрос:

Я пытаюсь реализовать функциональность глубокой привязки в React Native, я следил за официальными документами от React Native, также следую документации от React Navigation. Я изменил свой AndroidManifest.xml файл и добавил фильтры намерений в соответствии с документацией следующим образом:

     <intent-filter>
       <action android:name="android.intent.action.VIEW"/>
       <category android:name="android.intent.category.DEFAULT"/>
       <category android:name="android.intent.category.BROWSABLE"/>
      <data android:host="app" android:scheme="demo"/>
</intent-filter>
 

также изменен android: lunchMode на android:launchMode="singleTask" .

когда я устанавливаю приложение с помощью npx react-native android и приложение успешно устанавливается на пользовательское устройство. После этого я запускаю команду adb для проверки глубокой привязки и получаю ответ ниже:

 $ adb shell am start -W -a android.intent.action.VIEW -d "demo://app/chat/123" com.rndemo
Starting: Intent { act=android.intent.action.VIEW dat=app://whatsupp/chat/123 pkg=com.whatsupfire }
Warning: Activity not started, intent has been delivered to currently running top-most instance.
Status: ok
Activity: com.rndemo/.MainActivity
ThisTime: 0
TotalTime: 0
WaitTime: 19
Complete
 

Вот мои конфигурации ссылок:

 const config = {
  screens: {
    Chat: {
      screen: {
        ChatStack: {
          path: 'chat/:id',
          parse: {
            toId: (id) => `${id}`,
          },
        },
      },
    },
  },
};

const linking = {
  prefixes: ['demo://', 'demo://app'],
  config: config,
};
 

Я использую React Navigation V5, я использую связывание в App.js в NavigatorContainer важно упомянуть здесь то, что я использую поток аутентификации, используя официальные документы React Navigation, а чат вложен в navigator, но я также попытался получить доступ к demo://app и оболочке adbвозвращает тот же ответ, что и выше.

Ответ №1:

Добавьте ссылку в NavigationContainer:

 <NavigationContainer linking={linking} >
 

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

1. Я уже добавил, я как-то решил проблему, но получаю другую проблему при открытии ссылки с использованием React Native Linking.openURL