从其他应用程序React Native深层链接

时间:2017-06-16 16:46:41

标签: android react-native deep-linking

我们的应用程序应该在company:// upload上提供。我创建了itent-filter:

<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>

它正在打开应用程序,但在反应本机内部我无法捕获该URL。我的实施:

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();
  }
}
  • 实现位于router.js,这是第一个React组件。
  • 意图过滤器位于.MainActivity
  • 当我点击另一个应用程序上的应用程序时,它正在打开它,因此链接的java部分正在工作。

版本:

  • "react-native": "0.42.0",
  • Android SDK 23

1 个答案:

答案 0 :(得分:0)

我写了一个用于测试深层链接的脚本:

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

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