Android 反应来自其他应用程序的本机深度链接
我们的应用程序中有一个company://upload. 我创建了itent过滤器: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
<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>
- 实现在
中,这是第一个React组件李>router.js
- 意图筛选器位于.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();
}
}