gpt4 book ai didi

android - 在 Android 上 react native Linking.getInitialUrl 总是调用

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:13 24 4
gpt4 key购买 nike

我有一个 React-Native 应用程序,它包含以下代码(这里是 App.js,应用程序入口点),用于管理 Android 上的深层链接。

Linking.getInitialURL().then((deepLinkUrl) => {
if (deepLinkUrl) {
manageDeepLink(deepLinkUrl);
} else {
Navigation.startSingleScreenApp('rootScreen');
}
});

这里的问题是每次我启动我的应用程序时都会调用 getInitialURL,无论是从深度链接还是正常情况下,每次它都包含空的 deepLinkUrl 参数。我已经在 AndroidManifest 中注册了我的 Intent ,如下所示:

<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 导航来注册屏幕。

最佳答案

如果您在应用程序生命周期中过早地注册监听器(例如,直接在某些 .js 文件中,因此它会在应用程序加载时执行),它似乎不起作用。

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

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

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

关于android - 在 Android 上 react native Linking.getInitialUrl 总是调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52207944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com