我有一些链接应该重定向到我的应用程序中的特定页面;我按照 https://reactnavigation.org/docs/5.x/deep-linking/ 上的说明进行操作,它在以前的 Android 版本上运行良好,但在版本 13 上,它们都重定向到主页。
AndroidManifest.xml:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:windowSoftInputMode="adjustPan"
android:screenOrientation="portrait"
android:exported="true"
android:launchMode="singleTask">
<intent-filter android:autoVerify="true" tools:targetApi="m">
<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"
android:host="campanha.soustix.com.br"/>
</intent-filter>
<intent-filter>
<action android:name="br.com.soustix.NOTIFICATIONPRESSED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
deepLinkRoutes.rs:
export const linkingConfig = {
config: {
screens: {
Home: {
screens: {
HomePage: 'app',
MyExchanges: 'vouchers',
Explore: 'explore'
}
},
ProductDetail: 'product/:id',
P2PPresentation: 'p2p',
MGM: 'invitefriends',
Extract: 'extract',
MyAccount: 'myaccount',
JoinStix: 'joinstix',
Login: 'iam',
Catalog: 'catalog',
PartnerDetail: 'iupp',
Search: 'categories/:rootCategory'
}
}
};
App.tsx:
import { linkingConfig } from './src/config/deepLinkRoutes';
//rest of the code
<NavigationContainer linking={{ prefixes: ['
https://campanha.soustix.com.br/redirect'] }} >
我尝试运行
adb shell am start -W -a android.intent.action.VIEW -d "https://campanha.soustix.com.br/redirect/p2p" br.com.soustixp
但我只是得到 error: activity not started, unable to resolve intent { act=android.intent.action.view dat=https://campanhasoustix.com.br/... flg=0x10000000 pkg=br.com.soustix }
还尝试将 android:pathPrefix="/redirect/p2p" 添加到数据标记,但这也不起作用。请问我错过了什么?
定义的链接方式和使用方式不正确。基于 react 导航文档,您可以像下面这样定义:
<NavigationContainer
linking={{ prefixes: ['joaoraffo://'] }}
>
~~~
</NavigationContainer>
然后应用程序将通过包含该前缀地址的架构或链接打开。在应用程序内,您可以追上其余地址并尝试使用它