我按照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>
谢谢!