我使用Firebase动态链接是为了推荐赚。通常,用户(比如Receiver
)可以通过两种方式下载应用程序:
- 从Play商店安装应用程序(有机下载)。
- 使用动态链接安装应用程序。
现在,我怎么知道这个应用程序是否是使用另一个用户(比如说Sender
)与他共享的动态链接安装在Receiver
的手机上的呢?
这是监听应用程序打开的代码,它可以在上面提到的两种情况下运行。我无法检测应用程序是否使用动态链接安装。
void _listeningAppOpen() async {
PendingDynamicLinkData data = await FirebaseDynamicLinks.instance.getInitialLink();
Uri deepLink = data?.link;
if (deepLink != null) {
// app opened by dynamic link
}
FirebaseDynamicLinks.instance.onLink(onSuccess: (PendingDynamicLinkData dynamicLink) async {
Uri deepLink = dynamicLink?.link;
if (deepLink != null) {
// app was already opened (in background) and user clicked on dynamic link, we are here now
}
});
}
2条答案
按热度按时间z2acfund1#
尝试使用PendingDynamicLinkData中的单击时间戳。
aurhwmvo2#
当您从Firebase控制台创建动态链接时,它会询问您用户是否没有您要重定向的应用程序。有两个选项,一个是PlayStore,第二个是网站。在您的情况下,只需选择PlayStore,Firebase将自动处理用户是否安装了应用程序。如果没有,它会将其重定向到您在PlayStore上的应用程序。
当发送者将在他的设备上点击共享推荐链接时,则将发送具有唯一senderId作为链接中的参数的动态链接。该链接将看起来像:https://yourApp.page.link/?link=https://yourDomain.com/referral?senderId=uniqueSenderId“uniqueSenderId”将用于区分应用程序是首次安装还是再次安装。
为了让我们知道应用程序是否已经安装在接收者的设备上:发送者的链接将包含参数“senderId”,该参数具有针对每个发送者的唯一字符串。当接收方打开该链接时,我们可以通过调用来获取发送方的唯一ID:
如果deepLink为空,则应用程序直接从playStore下载,否则它将从任何人的链接下载。尽管如上面注解中所述,getInitialLink()仅在通过动态链接打开应用时被调用。因此,如果它没有被调用,那么应用程序是从PlayStore下载.在获得senderId之后,我们可以检查接收方是否已经在其数据库中存储了一个推荐ID。如果是,那么我们取消新收到的动态链接,如果推荐ID为空,我们可以在其中存储发送者的ID。因此,我们知道该应用程序是新安装或重新安装。