Firebase 动态链接不起作用 - DFL 参数
Firebase Dynamic Links not working - DFL parameter
我在 SO 和网络上搜索了类似的问题,虽然其他人似乎也遇到过这个问题,但他们的解决方案对我不起作用。
从 Android 开始,我正在尝试为我的应用实施动态链接。该应用程序需要有关动态 link 的其他参数,因此我根据此处的信息手动构建 link:https://firebase.google.com/docs/dynamic-links/create-manually.
我按照以下方式创建了我的 link(为此 post 目的而缩写的代码)
Uri.Builder builder = new Uri.Builder()
.scheme("https")
.authority(AppPrivate.Invitation.APP_CODE + ".app.goo.gl")
.path("/")
.appendQueryParameter("link", link)
.appendQueryParameter("apn", AppPrivate.PACKAGE)
.appendQueryParameter("dfl", desktopLink);
对于我的用例,link
和 desktopLink
参数是相同的 - 它们是我网站上的实际工作 URL。无论用户使用动态 link 点击什么设备,它都应该执行所需的操作。同样,为了简单地使它正常工作,我已经 link 访问了我们的主要网站 (https://www.mytravelerapp.com)。
当我从我的 Android 设备发送邀请时,我会根据此处的代码示例生成一个意图:https://github.com/firebase/quickstart-android/blob/master/invites/app/src/main/java/com/google/firebase/quickstart/invites/MainActivity.java
return new AppInviteInvitation.IntentBuilder(context.getString(R.string.content_trip_invitation_title))
.setMessage(message)
.setDeepLink(uri)
.setCustomImage(Uri.parse(AppPrivate.Invitation.TRIP_INVITE_DEEP_LINK_IMAGE))
.setCallToActionText(context.getString(R.string.content_trip_invitation_cta))
.build();
但是,当我在桌面上通过电子邮件收到邀请时,它总是会转到 Play 商店列表,无论我在初始深度 link(DFL、AFL)中添加了什么。这是来自电子邮件 "call to action" 按钮的 link 示例:
https://a3d4u.app.goo.gl/i/225742434763-3bd2c2fa-45f0-4ed8-aca3-37760d27d971
我还没有在 android 应用程序中实现接收器来侦听传入的 links,所以我无法确认深层 link 是否在这方面表现得当平台。
非常感谢任何关于桌面 link 遗漏的建议。
谢谢!
您实际上是将一个动态 link 包裹在另一个动态 link 中。 Invites 本身会生成一个动态 link,它没有您的 DFL 参数,因此它正在重定向到商店。
您可以尝试缩短您生成的动态 link,并通过常规共享对话框而不是使用邀请进行共享。
我在 SO 和网络上搜索了类似的问题,虽然其他人似乎也遇到过这个问题,但他们的解决方案对我不起作用。
从 Android 开始,我正在尝试为我的应用实施动态链接。该应用程序需要有关动态 link 的其他参数,因此我根据此处的信息手动构建 link:https://firebase.google.com/docs/dynamic-links/create-manually.
我按照以下方式创建了我的 link(为此 post 目的而缩写的代码)
Uri.Builder builder = new Uri.Builder()
.scheme("https")
.authority(AppPrivate.Invitation.APP_CODE + ".app.goo.gl")
.path("/")
.appendQueryParameter("link", link)
.appendQueryParameter("apn", AppPrivate.PACKAGE)
.appendQueryParameter("dfl", desktopLink);
对于我的用例,link
和 desktopLink
参数是相同的 - 它们是我网站上的实际工作 URL。无论用户使用动态 link 点击什么设备,它都应该执行所需的操作。同样,为了简单地使它正常工作,我已经 link 访问了我们的主要网站 (https://www.mytravelerapp.com)。
当我从我的 Android 设备发送邀请时,我会根据此处的代码示例生成一个意图:https://github.com/firebase/quickstart-android/blob/master/invites/app/src/main/java/com/google/firebase/quickstart/invites/MainActivity.java
return new AppInviteInvitation.IntentBuilder(context.getString(R.string.content_trip_invitation_title))
.setMessage(message)
.setDeepLink(uri)
.setCustomImage(Uri.parse(AppPrivate.Invitation.TRIP_INVITE_DEEP_LINK_IMAGE))
.setCallToActionText(context.getString(R.string.content_trip_invitation_cta))
.build();
但是,当我在桌面上通过电子邮件收到邀请时,它总是会转到 Play 商店列表,无论我在初始深度 link(DFL、AFL)中添加了什么。这是来自电子邮件 "call to action" 按钮的 link 示例:
https://a3d4u.app.goo.gl/i/225742434763-3bd2c2fa-45f0-4ed8-aca3-37760d27d971
我还没有在 android 应用程序中实现接收器来侦听传入的 links,所以我无法确认深层 link 是否在这方面表现得当平台。
非常感谢任何关于桌面 link 遗漏的建议。
谢谢!
您实际上是将一个动态 link 包裹在另一个动态 link 中。 Invites 本身会生成一个动态 link,它没有您的 DFL 参数,因此它正在重定向到商店。
您可以尝试缩短您生成的动态 link,并通过常规共享对话框而不是使用邀请进行共享。