深度链接问题在 Android 13 上不起作用

问题描述 投票:0回答:1

我想在我的应用程序中使用 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>
android android-jetpack-compose deep-linking android-jetpack-navigation android-deep-link
1个回答
2
投票

看起来您正在将深度链接与应用程序链接混合在一起。您是否已将

assetlinks.json
文件放置在正确的路径中(在正确的 url 下)?

https://gymsaround.example.com/.well-known/assetlinks.json

正如您所拥有的

android:autoVerify="true"
- 此行使 Android 检查域是否确认应用程序可以在不打开网页的情况下处理 URL,更多文档请参见 HERE。如果是,那么应用程序将自动打开,而不向用户发出任何提示,如果不是,仍然会显示网页(如您的情况) - 这是应用程序链接

如果您只是想在第一次点击时询问用户是否想在(您的)应用程序或网络浏览器中打开 URL,则删除

autoVerify
标志

© www.soinside.com 2019 - 2024. All rights reserved.