我已经使用https://medium.com/react-native-training/deep-linking-your-react-native-app-d87c39a1ad5e上的出色教程与我们的React本机应用程序进行了深层次的链接,以在基本级别上工作。在iOS上可以正常使用,但是在Android上,当我链接回我的应用程序时,URL似乎没有传递回去:
class App extends Component {
componentDidMount() {
if (UtilsCommon.isNative) {
RNSplashScreen.hide();
if (UtilsCommon.isIos) {
Linking.addEventListener("url", this.handleOpenURL);
} else {
console.log("registering deep linking on Android");
Linking.getInitialURL().then(url => {
console.log("url", url);
});
}
}
}
componentWillUnmount() {
Linking.removeEventListener("url", this.handleOpenURL);
}
handleOpenURL = event => {
console.log(event.url);
};
因此,在iOS上,从测试页返回的链接很高兴地进入handleOpenURL,我看到链接的整个URL都出现在控制台中。但是,在Android上,我们总是将url设为null。因此,尽管它重新打开了该应用程序,但由于这个原因,我无法确定该去哪里。我向AppManifest.xml添加了以下意图:
<intent-filter android:label="filter_react_native">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" />
</intent-filter>
我尝试在数据节点内部指定android:host属性,但该URL仍然顽固地保持为null。谁能告诉我我还需要做什么?