链接已打开的React Native Android应用

时间:2019-05-07 11:23:01

标签: android react-native react-navigation deep-linking

我按照React Native docs for Linking中给出的步骤进行操作,并且当应用从链接开始冷启动时,我能够选择URL。但是,当应用程序仍在后台运行时,从链接中打开应用程序时,getInitialURL中的回调不会触发。我还添加了url事件侦听器,但是永远不会触发,冷启动或其他方式。

(只是要澄清:当我说冷启动时,我的意思是指通过按Android后退按钮或从多任务器视图中关闭该应用程序时,该应用程序无法关闭。该应用程序/活动仍在后台处于活动状态,例如当按下Android主页按钮时,或者在按通知导航到另一个应用程序时。)

该如何处理?

我使用的是旧版本的react-navigation(1.0.0-beta.11),但是我将链接处理程序添加到了比最父类StackNavigator更高的级别,所以我相信那不应该是问题。 到目前为止,这是我所做的:

componentDidMount() {
    Linking.getInitialURL().then(url => {
        console.log('getInitialURL', url)
    })
    Linking.addEventListener('url', this.handleOpenURL)
}

componentWillUnmount() {
    Linking.removeEventListener('url', this.handleOpenURL);
}

handleOpenURL = (event) => {
    console.log('handleOpenURL', event)
}

这是我的AndroidManifest.xml

<intent-filter android:autoVerify="true">
    <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="app.example.com" />
</intent-filter>

谢谢!

0 个答案:

没有答案