导航组件似乎仅适用于短动态链接(firebase)

时间:2019-09-10 09:43:32

标签: android firebase androidx firebase-dynamic-links

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

示例: 长动态链接

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动态Deeplink +导航组件的文档

1 个答案:

答案 0 :(得分:0)

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

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

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