Android上的React native Linking.getInitialUrl调用always

Android上的React native Linking.getInitialUrl调用always,android,react-native,react-native-android,deep-linking,react-native-navigation,Android,React Native,React Native Android,Deep Linking,React Native Navigation,我有一个React原生应用程序,其中包含以下代码(这里是app.js,应用程序入口点),用于管理Android上的深层链接 Linking.getInitialURL().then((deepLinkUrl) => { if (deepLinkUrl) { manageDeepLink(deepLinkUrl); } else { Navigation.startSingleScreenApp('rootScreen'); } }); 这里的问题是每次我启动我

我有一个React原生应用程序,其中包含以下代码(这里是app.js,应用程序入口点),用于管理Android上的深层链接

Linking.getInitialURL().then((deepLinkUrl) => {
  if (deepLinkUrl) {
    manageDeepLink(deepLinkUrl);
  } else {
    Navigation.startSingleScreenApp('rootScreen');
  }
});
这里的问题是每次我启动我的应用程序时都会调用getInitialURL,无论是从深度链接还是正常情况下,每次它包含deepLinkUrl参数empty时都会调用。 我已在Android中注册,并表明我的意图如下:

<application
    android:name=".MainApplication"
    android:allowBackup="true"
    android:launchMode="singleTask"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize">
        <!-- deeplink -->
        <intent-filter android:label="@string/app_name">
            <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>
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

更新
我正在使用react native navigation来注册屏幕,如果这有用的话。

如果在应用程序生命周期中注册listener太快(例如,直接在一些.js文件中注册,那么它在加载应用程序时执行),那么它似乎不起作用

如果将其移动到根组件上的
componentDidMount()
中,一切正常

    componentDidMount() {
        Linking.addEventListener('url', event => {
            console.warn('URL', event.url)
        })

        Linking.getInitialURL().then(url => {
            console.warn('INITIAL', url)
        })
    }

因为您在AndroidManifest.xml中添加了
android:launchMode=“singleTask”
。请将其修改为android:launchMode=“singleTop”,然后您的问题将消失。

我也遇到了这个问题,您找到了解决方案吗?您找到了解决方案吗?