Firebase 动态链接新安装事件
Posted
技术标签:
【中文标题】Firebase 动态链接新安装事件【英文标题】:Firebase Dynamic Link New Install Events 【发布时间】:2021-08-08 11:28:12 【问题描述】:每当用户点击任何动态链接时,我都想在我的 android 应用中获取新安装或应用打开/重新打开事件。
根据文档在 Analytics 中捕获以下事件:
dynamic_link_first_open
dynamic_link_app_open
但我找不到任何方法从示例侦听器中获取这些内容。
【问题讨论】:
【参考方案1】:我找到了上述问题的解决方案。在此处分享详细信息。
下面的代码也是从 PlayStore 测试的。
您可以通过从addOnSuccessListener
接收到的pendingDynamicLinkData
回调对象获取提到的两个事件。
在此处获取链接和相关动态链接数据的完整代码。
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, pendingDynamicLinkData ->
// Get deep link from result (may be null if no link is found)
try
Uri deepLink = null;
if (pendingDynamicLinkData != null)
deepLink = pendingDynamicLinkData.getLink();
sendInstallDetailToAPI(pendingDynamicLinkData.getExtensions());
CgUtils.showLog(TAG, "getDynamicLink:onSuccess" + deepLink);
catch (Exception e)
CgUtils.showLog(TAG, "getDynamicLink:onFailure" + e);
)
.addOnFailureListener(this, e -> CgUtils.showLog(TAG, "getDynamicLink:onFailure" + e));
如果需要,可以使用以下方法将动态链接数据发送到后端 API。
private void sendInstallDetailToAPI(Bundle deepBundle)
Bundle deepLinkData = deepBundle.getBundle("scionData");
if (deepLinkData != null)
Bundle appReOpenBundle = deepLinkData.getBundle("dynamic_link_app_open");
boolean isInstall = false;
String medium = "", source = "", campaign = "", shortLink = "";
if (appReOpenBundle != null)
medium = appReOpenBundle.getString("medium", "NA");
source = appReOpenBundle.getString("source", "NA");
campaign = appReOpenBundle.getString("campaign", "NA");
shortLink = appReOpenBundle.getString("dynamic_link_link_id", "NA");
Bundle appFirstOpenBundle = deepLinkData.getBundle("dynamic_link_first_open");
if (appFirstOpenBundle != null)
isInstall = true;
medium = appFirstOpenBundle.getString("medium", "NA");
source = appFirstOpenBundle.getString("source", "NA");
campaign = appFirstOpenBundle.getString("campaign", "NA");
shortLink = appFirstOpenBundle.getString("dynamic_link_link_id", "NA");
// Send ABOVE detail to your respective APIs
现在如果isInstall
标志为真,则表示它是安装后第一次打开,否则重新打开。
【讨论】:
以上是关于Firebase 动态链接新安装事件的主要内容,如果未能解决你的问题,请参考以下文章
新安装的程序打开时提示无法定位程序输入点CLRCreateinstance 于动态链接库mscoree.dll上
动态创建的 Firebase 动态链接不适用于 Android