我想在我的应用程序中使用 Jetpack Compose 和 Jetpack 导航来使用深层链接。 我尝试使用谷歌浏览器中的链接打开应用程序,但应用程序未打开,谷歌浏览器会像处理常规网站链接一样处理请求。
我尝试将深层链接与 Jetpack Compose 结合使用我执行了以下操作
composable(
route = "gyms/{gym_id}",
arguments = listOf(navArgument(name = "gym_id") { type = NavType.IntType }),
deepLinks = listOf(navDeepLink {
uriPattern = "https://gymsaround.example.com/details/{gym_id}"
action = Intent.ACTION_VIEW
})
) { GymDetailsScreen() }
<intent-filter android:autoVerify="true">
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<action android:name="android.intent.action.VIEW" />
<data
android:host="gymsaround.example.com"
android:scheme="https" />
</intent-filter>
看起来您正在将深度链接与应用程序链接混合在一起。您是否已将
assetlinks.json
文件放置在正确的路径中(在正确的 url 下)?
https://gymsaround.example.com/.well-known/assetlinks.json
正如您所拥有的
android:autoVerify="true"
- 此行使 Android 检查域是否确认应用程序可以在不打开网页的情况下处理 URL,更多文档请参见 HERE。如果是,那么应用程序将自动打开,而不向用户发出任何提示,如果不是,仍然会显示网页(如您的情况) - 这是应用程序链接
如果您只是想在第一次点击时询问用户是否想在(您的)应用程序或网络浏览器中打开 URL,则删除
autoVerify
标志