我搜索了SO和网络上的类似问题,而其他人似乎遇到了这个问题,他们的解决方案对我不起作用。
DFL parameter in Firebase Dynamic Links Builder
从Android开始,我尝试为我的应用实施动态链接。该应用需要动态链接上的其他参数,因此我根据以下信息手动构建链接:https://firebase.google.com/docs/dynamic-links/create-manually。
我已按以下方式创建了我的链接(代码缩写为本文的目的)
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
参数是相同的 - 它们是我网站上的实际工作网址。无论用户使用动态链接点击什么设备,它都应该执行所需的操作。同样,为了简化这项工作,我已经链接到我们的主要网站(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();
但是,当我在桌面上通过电子邮件收到邀请时,无论我添加到初始深层链接(DFL,AFL),它总是会进入Play商店列表。以下是"号召性用语"的链接示例。电子邮件中的按钮:
https://a3d4u.app.goo.gl/i/225742434763-3bd2c2fa-45f0-4ed8-aca3-37760d27d971
我还没有在Android应用中实现接收器来侦听传入链接,所以我无法确认深层链接是否在该平台上表现得恰当。
非常感谢您对我在桌面链接中遗漏的内容提出的任何建议或建议。
谢谢!
答案 0 :(得分:1)
您实际上是在另一个动态链接中包装动态链接。 Invites本身会生成一个动态链接,它没有您的DFL参数,因此它会重定向到商店。
您可以尝试缩短生成的动态链接,并通过常规共享对话框进行共享,而不是使用邀请。