深度链接无法在 Android 13 上使用 React Native 工作

问题描述 投票:0回答:1

我有一些链接应该重定向到我的应用程序中的特定页面;我按照 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-native deep-linking android-deep-link android-13 android-13-deeplink
1个回答
0
投票

定义的链接方式和使用方式不正确。基于 react 导航文档,您可以像下面这样定义:

<NavigationContainer
  linking={{ prefixes: ['joaoraffo://'] }}
>
  ~~~
</NavigationContainer>

然后应用程序将通过包含该前缀地址的架构或链接打开。在应用程序内,您可以追上其余地址并尝试使用它

© www.soinside.com 2019 - 2024. All rights reserved.