Firebase 动态链接 - 从 Play 商店安装应用程序后无法在 android 中获取 Url
Posted
技术标签:
【中文标题】Firebase 动态链接 - 从 Play 商店安装应用程序后无法在 android 中获取 Url【英文标题】:Firebase Dynamic Links - Can't get Url in android after install app from play store 【发布时间】:2018-12-13 19:04:04 【问题描述】:如果我在单击动态链接时安装应用程序。当我第一次打开应用程序时,动态中的所有信息应该仍然可用。我怎样才能获得这些信息?当我使用它时它不起作用:getInitialLink() returns Promise<string|null>;
【问题讨论】:
我有完全相同的问题。 ios工作正常。我在firebaselinks.java中调试了本机java代码 getInitialLink 安装后总是返回null 你是马上从getInitialLink()
取回返回值,还是里面有await
?
查看github.com/invertase/react-native-firebase/issues/1273 以供参考。
【参考方案1】:
因为,您还没有提到 - 我假设您在使用较短的 url 时遇到问题,如果是这种情况,请尝试使用较长的 url。
或refer here on Simon's answer:当我使用长链接而不是短链接时,一切正常。
在 android 上,您使用 getInvitation()
方法从动态链接获取数据:
AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, false).setResultCallback
(/* ... */);
然后,在回调中,可以通过调用getDeepLink()
方法获取动态链接链接参数中传递的数据:
Firebase Documentation - Use Case
供将来参考或 Firebase 动态链接的详细答案
Behave just like normal Links
如果应用程序不需要安装(例如,如果它已经安装),则单击动态链接将自动打开指向所需屏幕的链接。
动态链接有一个非常简单的流程:
用户首先点击动态链接 如果满足动态链接目标的需求(即正在安装的应用程序),则将用户导航到目标位置 否则,如果应用程序需要安装才能导航 到动态链接目标,用户被带到 为应用程序安装。安装应用程序后, 用户被导航到动态链接的目标位置如果还不是全部,我们可以将动态链接与 Firebase Analytics 集成,以跟踪与我们为应用程序生成的任何链接的交互。但是,如果我们只需要简单的跟踪,那么我们可以使用 Firebase 控制台中动态链接面板中的自动内置分析,我们还可以在其中获取交互链接的属性和引荐来源信息,而无需我们付出额外的努力。
What makes it different from Google Analytics?
当我读到 Firebase Analytics 时,我首先想到的就是“我的 Google Analytics 设置怎么样?”。因此,如果您已经安装了 Google Analytics,那么为什么要切换到 Firebase Analytics?好吧,这是两者之间的一些区别:
观众
我们可以使用 Firebase Analytics 来创建受众 — 这些是我们可以使用其他 Firebase 服务(例如 Firebase 通知和/或 Firebase 远程配置)与之交互的用户组。
与其他 Firebase 服务集成
Firebase Analytics 的一个很棒的事情是我们可以将其他 Firebase 服务与分析相集成。例如,为经历过通过 Firebase 崩溃报告报告的崩溃的用户创建受众群体。
减少方法计数
Android 上的 Google Analytics(分析)依赖项共有 18,607 个方法,总共有 4kb 用于依赖项。另一方面,Firebase Core(用于 Analytics)的方法计数为 15,130,仅 1kb 用于依赖项。
自动跟踪
当我们添加 firebase 核心依赖项时,它会自动开始为我们跟踪用户参与事件和设备信息的集合 — 如果您只想为您的应用收集最少的数据,这很有用。
无限报告
对于多达 500 个事件,Firebase Analytics 为我们提供了无限量的开箱即用的免费报告!
无单例初始化
在 Android 上设置 Google Analytics 时,我们需要初始化一个 Singleton 实例。 Firebase Analytics 只需从我们希望跟踪数据的地方直接获取实例即可。显然,这并不费力,只是让设置流程稍微容易一些。
单一控制台
每个 Firebase 服务的所有数据都可用于单个控制台。这让我们可以更轻松、更快捷地从检查应用的分析统计信息到查看最新的崩溃报告。
【讨论】:
【参考方案2】:看起来这是react-native-firebase
为android
开放的错误
为了修复模块代码中唯一需要更改的内容:
private boolean isInvitation(PendingDynamicLinkData pendingDynamicLinkData)
return FirebaseAppInvite.getInvitation(pendingDynamicLinkData) != null;
到
private boolean isInvitation(PendingDynamicLinkData pendingDynamicLinkData)
FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(pendingDynamicLinkData);
if (invite != null && invite.getInvitationId() != null && !invite.getInvitationId().isEmpty())
return true;
return false;
错误参考: https://github.com/invertase/react-native-firebase/issues/1273
【讨论】:
【参考方案3】:请检查您的清单文件 打开 AndroidManifest.file => 在您的 activity 标记中有 intent-filter 标记放在该标记的行下方。
<data android:scheme="https" android:host="your.dynamic.link" />
<data android:scheme="http" android:host="your.dynamic.link" />
如果已经完成,请检查此链接以获取有关带有 react native 的动态链接的完整博客。 链接:http://blog.logicwind.com/react-native-dynamic-links-using-firebase/
我希望这会有所帮助。抱歉,错别字了。
【讨论】:
以上是关于Firebase 动态链接 - 从 Play 商店安装应用程序后无法在 android 中获取 Url的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Invite for Beta 应用(Google Play 商店 Beta 和 iOS Testflight)
Android - “firebase.test.lab”设置无法从 Firebase 分析中排除 Play 商店测试活动
即使已安装应用,Firebase 动态链接也始终会转到应用商店网址