Как использовать универсальные ссылки React Navigation с параметрами пути на Android?

#javascript #android #react-native #react-navigation #deep-linking

#javascript #Android #react-native #react-навигация #глубокие ссылки

Вопрос:

У меня есть следующий домен: https://demoproject.com

Я хотел бы связать все URL-адреса с /demo параметром path с моим приложением React Native на Android, чтобы, например, URL https://demoproject.com/demo?a=1amp;b=2 -адрес был связан, но любой другой URL-адрес с тем же доменом, но разные параметры пути будут исключены.

Прямо сейчас я использую React Navigation 5 следующим образом:

 const linking = {
    prefixes: ['https://demoproject.com'],
    config: {
      DemoScreen: {
          path: '/demo/*'
      }
    }
};
<NavigationContainer linking={linking}>
 

AndroidManifest.xml

 <intent-filter android:autoVerify="true">
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="https" />
      <data android:host="demoproject.com" />
</intent-filter>
 

Само связывание работает нормально, но проблема в том, что все URL-адреса с префиксом https://demoproject.com связываются, в то время как я хочу, чтобы были связаны только URL-адреса с /demo параметром path.

Я пробовал:

  • <data android:host="demoproject.com/demo" /> — ни один из URL-адресов не связан
  • prefixes: ['https://demoproject.com/demo'] — все URL-адреса с https://demoproject.com доменом связаны

Есть идеи, как это решить или что я здесь делаю не так?

Ответ №1:

Он должен быть определен в IntentFilter с pathPrefix помощью или pathPattern :

 <intent-filter android:autoVerify="true">
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="https" />
      <data android:host="demoproject.com" android:pathPrefix="/demo/" />
</intent-filter>
 

Источник: https://developer.android.com/guide/topics/manifest/data-element#path

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

1. android: pathPrefix прибил его