如何在 Facebook 应用内消息上实现深层链接
Posted
技术标签:
【中文标题】如何在 Facebook 应用内消息上实现深层链接【英文标题】:How to implement deep links on Facebook in-app messages 【发布时间】:2018-12-24 13:28:29 【问题描述】:溢出社区,
我们正在为应用开发深层链接功能,但遇到了 Facebook 推送消息的应用内消息功能的问题。
我们正在尝试发送与应用内消息按钮相关联的深层链接,但是当用户单击此类按钮时,应用所做的就是在浏览器上打开此类 url。
我们需要的是能够捕获这样的动作并解析发送的 URL (http://example.com/product?id=1234),但是,我们似乎找不到这样做的方法。
我们需要为 ios 和 android 这样做,但只要我们能够解决至少一个平台的问题,我们就可以解决另一个平台的问题。
【问题讨论】:
您能否添加更多上下文? Facebook 如何适应,谁在发送链接,谁在打开链接?问题基本上是您的应用在应该打开的时候没有被某个 URL 打开吗? 嗨 @Dopapp,我们正在使用 Facebook 分析和推送通知功能向用户发送推送消息并向他们显示应用内消息 (developers.facebook.com/docs/push-notifications)。该问题与 facebook 应用内消息有关。在这样的消息中,可以添加带有相关链接的按钮(来自 facebook Web 控制台),问题是这些按钮包含像 example.com/product?id=1234 这样的链接,它为我们的应用程序定义了一个深层链接,但是当用户点击按钮时,它被定向到浏览器。我需要什么才能解析这样的意图。 浏览器是否重定向到您的应用? @Dopapp 准确地说,我希望按钮在按下时在我的应用程序中执行某些操作。 你应该阅读我上面链接到的 Medium 文章。它应该会有所帮助。 【参考方案1】:我相信你应该尝试实现Universal Links。
【讨论】:
嗨@tal-cohen,我们正在使用firebase动态链接,它在幕后实现了通用链接。但是,当用户点击按钮时,它会被重定向到 firebase 应用预览页面,即使您在动态链接中禁用了此类页面。【参考方案2】:您需要像这样手动获取 Deeplink 的 Firebase 实例并解析链接,而不是将您的对话框/按钮操作设置为任何值。
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>()
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData)
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null)
deepLink = pendingDynamicLinkData.getLink();
Log.d("DeepLink", deepLink.toString()+pendingDynamicLinkData.zzte().toString());
if(deepLink.getEncodedPath().contains("mobile-app"))
【讨论】:
以上是关于如何在 Facebook 应用内消息上实现深层链接的主要内容,如果未能解决你的问题,请参考以下文章
在 Branch.io 中,如何在 facebook 中发布带有查询参数的深层链接
如何在iOS中为twitter和Facebook实现通用深层链接?