Android 反应来自其他应用程序的本机深度链接

Android 反应来自其他应用程序的本机深度链接,android,react-native,deep-linking,Android,React Native,Deep Linking,我们的应用程序中有一个company://upload. 我创建了itent过滤器: <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BRO

我们的应用程序中有一个company://upload. 我创建了itent过滤器:

<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:scheme="company"
    android:host="upload" />
</intent-filter>
  • 实现在
    router.js
    中,这是第一个React组件
  • 意图筛选器位于.main活动中
  • 当我单击另一个应用程序上的应用程序时,它正在打开它,因此链接的java部分正在工作
版本:

  • “react native”:“0.42.0”,
  • Android SDK 23

我编写了一个脚本来测试深度链接:

adb shell am start-W-a android.intent.action.VIEW-d“company://$1”com.companyapps/.MainActivity


深度链接是正确的,问题在于我的应用程序的Java部分。

我编写了一个脚本来测试深度链接:

adb shell am start-W-a android.intent.action.VIEW-d“company://$1”com.companyapps/.MainActivity


深度链接是正确的,问题在于我的应用程序的Java部分。

您在第一个react组件中的哪里添加了javascript部分?如果是,请将其移动到路由器。我正在使用
react native flux router
。这是一个更高的水平。但是,我认为,
链接
包应该在其他任何地方都能找到它,不是吗?我不这么认为。如果你将它添加到路由器中,它肯定会工作。你在路由器中是什么意思?你在第一个react组件中的哪里添加了javascript部分?如果是,请将其移动到路由器。我正在使用
react native flux router
。这是一个更高的水平。但是,我认为,
链接
包应该在其他任何地方都能找到它,不是吗?我不这么认为。如果你把它放在路由器里面,它肯定会工作。你说路由器里面是什么意思?
componentWillMount() {
  Linking
    .getInitialURL()
    .then(event => this.handleOpenURL(event))
    .catch(console.error);
  Linking.addEventListener('url', this.handleOpenURL);
  this.props.loadCredentials();
}

handleOpenURL(event) {
  console.log(event);
  switch (event.url) {
    case `${Config.APP_SCHEMA}upload`:
      Actions.Upload();
      break;
    default:
      Actions.Home();
  }
}