Branch.io在Android上安装后首次运行时检索BranchUniversalObject
问题描述:
我正在使用Branch.io进行深度链接。如果已安装的应用程序,一切工作正常,但如果这是在安装应用程序后第一次运行,然后永远不会执行(内部调用onStart)Branch.io在Android上安装后首次运行时检索BranchUniversalObject
Branch branch = Branch.getAutoInstance(getApplicationContext());
branch.initSession(new Branch.BranchUniversalReferralInitListener() {
@Override
public void onInitFinished(BranchUniversalObject branchUniversalObject,
LinkProperties linkProperties, BranchError branchError) {
DeepLinkUtil.processBranchIntent(branchUniversalObject);
}
});
我不是从Play商店中安装下面的代码,但从服务器下载。当我点击链接时,下载从浏览器开始,然后我可以点击下载的APK来安装它。安装完成后,第一次打开APK时,上面的代码永远不会执行。
我已经添加以下代码在调用onStart():
Branch branch = Branch.getAutoInstance(getApplicationContext());
JSONObject installParams = branch.getFirstReferringParams();
if (installParams == null) {
Log.d(TAG, "processIntent: installParams: null");
} else {
Log.d(TAG, "processIntent: installParams: " + installParams.toString());
}
当首次运行安装后,安装PARAMS不为空,但空 - {}。第二次运行时,安装params包含来自点击链接的正确信息,但'is_first_session'现在为false。
我确实安装了在清单中注册的referrer接收器,但我不清楚它是否适用于PlayStore只安装或任何安装。
在安装后第一次运行时,我还需要做些什么来获取推荐链接?
答
亚历克斯从Branch.io在这里:
夫妇的事情谈论。
-
getFirstReferringParams
方法并不完全符合您的期望。它在链接上返回数据,导致首次在该设备上安装,因此如果该安装未从分支链接引用,则返回将根据设计而为空。请注意,这是该设备上第一次安装,所以即使在安装期间这些值也不会更改。如果您希望它的行为与测试目的不同,请参阅debug mode。 - 我怀疑你可能在你的自定义Application类中的
Activity
和onStart()
方法中意外地合并了onStart()
方法中的分支片段。如果是这样,这可能有助于审查SDK integration guide。
不确定你在#2中的含义。我在我的问题中发布的所有内容均来自Activity的onStart()。在应用程序的onCreate()我有Branch.getAutoInstance()和Branch.enablePlayStoreReferrer()。 –
这可能是问题 - 你有一些代码(特别是'Branch.getAutoInstance'),它根本不应该在Activity中。我建议通过集成指令返回,以确保一切都按计划进行。 –
你是对的,我混淆了Branch.getAutoInstance()和Branch.getInstance() - 不是名称的最佳选择:)不确定这是否是问题的根源,需要进一步实验。 –