【问题标题】:Navigation component seems just working with short dynamic link (firebase)导航组件似乎只是使用短动态链接(firebase)
【发布时间】:2020-01-12 01:14:06
【问题描述】:

导航组件似乎只适用于短动态链接

示例: 长动态链接

https://domaindebug.page.link/?link=https://www.website.com&apn=com.x.debug&isi=122...6&ibi=com.ios.x.debug&efr=1

短动态链接

https://domaindebug.page.link/register
<fragment
        android:id="@+id/fragment_register"
        android:name="com.x.presentation.feature.identification.view.RegisterFragment"
        tools:layout="@layout/fragment_register">
        <action
            ... />
        <argument
            android:name="code"
            android:defaultValue="@null"
            app:argType="string"
            app:nullable="true" />
        <deepLink
            android:id="@+id/deepLink"
            app:uri="https://domaindebug.page.link/register?code={code}" />
</fragment>

如果我点击长动态链接,什么也不会发生。 我该如何管理?我也找不到任何关于集成 firebase 动态深度链接 + 导航组件的文档

【问题讨论】:

  • 短网址怎么设置?
  • 如示例
  • 您的长网址主机与“domaindebug.page.link”不同?对吗?
  • 你确定吗?因为 .page.link 仅附加在 firebase 短网址中。

标签: android firebase androidx firebase-dynamic-links


【解决方案1】:

到目前为止,我还没有看到任何官方将动态链接与导航组件集成。但是通过在FirebaseDynamicLinks 的帮助下获取链接并将其传递给NavController 来手动集成它们非常简单:

FirebaseDynamicLinks.getInstance()
            .getDynamicLink(intent)
            .addOnSuccessListener(this) { link ->
                findNavController(R.id.nav_host_fragment).handleDeepLink(Intent().apply {
                    data = link?.link
                })
            }

请查看我创建的sample project 来展示这个想法。它在单独的 Activity 中处理深层链接以使 UI 更流畅,但将链接交给导航组件进行处理。

【讨论】:

  • 但是我为什么要声明带有导航组件的长深度链接呢?如果没有导航组件,我可以在每个活动(Android 清单)中声明短链接并用 getDynamicLink 处理它
  • @rguerra 所以你想从链接中获取https://www.website.com 部分并将其传递给导航库,对吧?
  • 是的@esentsov,但在导航组件中我只有一个活动。此活动是否应该管理所有深层链接 (FirebaseDynamicLinks) 并将用户重定向到每个片段?
  • @rguerra 是的,通过上述方法,活动从FirebaseDynamicLinks 获取所有深层链接并将它们传递给导航组件进行处理。这就是导航库本身处理链接的方式 - 在主要活动和进程中捕获它们。
  • 但它会自动“将它们传递给导航组件”吗?或者我是否需要为每个片段设置一个 switch/when 案例?老实说,我认为它不是很干净
猜你喜欢
  • 2020-12-02
  • 2021-09-15
  • 2020-06-10
  • 2012-06-25
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 2020-11-30
  • 2023-01-26
相关资源
最近更新 更多