#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 прибил его