Jetpack Compose 中的Deep Linking — Android

Jetpack Compose 中的Deep Linking — Android

在本文中,我们将学习如何在 Jetpack Compose 中轻松实现深度链接。
deep linking

什么是深度链接?

深层链接允许用户直接从外部来源(例如网站或其他应用程序)导航到应用程序内的特定内容。

添加依赖性

app/build.gradle.kts并添加导航依赖项。

dependencies {
    
    
    implementation("androidx.navigation:navigation-compose:2.5.3")
}

现在让我们回到MainActivity.kt并设置导航。

步骤1
创建navController.

val navController = rememberNavController()

第2步
创建NavHostScreen

NavHost( 
    navController = navController, 
    startDestination = "home"
 ) {
    
     

    composable( 
        route = "home"
     ) {
    
     
        // ...
     } 
}

现在我们需要为应用程序定义统一资源标识符 (URI) 。基本上,URI是指向我们应用程序的链接。当用户打开此链接时,它将被重定向到应用程序。这是我的:

val uri = "https://www.ad-coding.com"

我们还定义一个指向主屏幕的深层链接并传递参数。为此,我们需要定义一个列表navDeepLink并使用backStackEntry来获取参数。

composable(
    route = "home",
    deepLinks = listOf(
        navDeepLink {
    
    
            uriPattern = "$uri/{id}"
        }
    )
) {
    
     backStackEntry ->
    val homeNumber = backStackEntry.arguments?.getString("id")

    Box(
        modifier = Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ) {
    
    
        Text(text = homeNumber ?: "No number")
  }
}

现在我们需要将URI链接到应用程序。打开AS“工具” 选项卡并选择“应用程序链接助手”。

App Links tools

打开URL Mapping Editor > 单击 + 按钮并 添加我们之前在Host字段中定义的URI,然后单击OK。

links edit ui
如果我们点击我们创建的主机,我们可以看到它在AndroidManifest.xml.

  • Action.VIEW— 这意味着可以启动该组件来查看特定内容。
  • Category.DEFAULT— 表示该组件是一个典型的组件,可以默认启动。
  • Category.BROWSABLE— 表示该组件可以从 Web 浏览器启动。
  • android:scheme— https, 是处理 URL 的协议。
  • android:hostwww.ad-coding.com, 是基本链接。
    AndroidManifest intent config

我们还要检查URL是否映射到MainActivity.
links test

我们需要做的最后一件事是测试URI。单击测试应用程序链接

test target
让我们传递URI以及末尾用/. 之后运行测试,它应该是成功的。
url map

参考链接

https://medium.com/@daniel.atitienei/deep-linking-in-jetpack-compose-android-f9a70d432896

猜你喜欢

转载自blog.csdn.net/u011897062/article/details/130555087