- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 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/
我已经遇到这个问题大约 2 周了。我用了Wix's Navigation用于在应用程序中导航。我关注了this tutorial用于实现深层链接/通用链接。 我有一个名为 BaseScreen 的基类
我已成功使用深层链接从共享扩展程序打开我的应用程序。如果应用程序已经在运行,那么我使用 Linking.addEventListener('url', this.handleOpenURL); 在 C
我使用链接从浏览器打开我的应用。 当我第一次在浏览器中点击链接时,我的应用程序运行但传入的 URL 在此之后不清除并且 linking.GetInitialUrl() 始终使用该 URL 运行。 我的
我有一个 React-Native 应用程序,它包含以下代码(这里是 App.js,应用程序入口点),用于管理 Android 上的深层链接。 Linking.getInitialURL().then
我是一名优秀的程序员,十分优秀!