Branch.io 在 Android 上安装后首次运行时检索 BranchUniversalObject
Posted
技术标签:
【中文标题】Branch.io 在 Android 上安装后首次运行时检索 BranchUniversalObject【英文标题】:Branch.io retrieving BranchUniversalObject on first run after installation on Android 【发布时间】:2017-04-25 23:13:37 【问题描述】:我正在使用 Branch.io 进行深度链接。如果应用程序已经安装,一切正常,但如果这是安装应用程序后的第一次运行,则永远不会执行以下代码(在 onStart 内)
Branch branch = Branch.getAutoInstance(getApplicationContext());
branch.initSession(new Branch.BranchUniversalReferralInitListener()
@Override
public void onInitFinished(BranchUniversalObject branchUniversalObject,
LinkProperties linkProperties, BranchError branchError)
DeepLinkUtil.processBranchIntent(branchUniversalObject);
);
我不是从 PlayStore 安装,而是从服务器下载。当我点击链接时,在浏览器中开始下载,然后我可以点击下载的 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());
安装后第一次运行时,安装参数不为空,而是为空 - 。第二次运行时,安装参数包含来自点击链接的正确信息,但“is_first_session”现在为假。
我确实在清单中注册了安装引用接收器,但我不清楚它是否适用于 PlayStore 仅安装或任何安装。
我还需要做什么才能在安装后第一次运行时获得推荐链接?
【问题讨论】:
【参考方案1】:来自 Branch.io 的 Alex 在这里:
有几件事要谈。
getFirstReferringParams
方法并没有达到您的预期。它返回导致在该设备上首次安装的链接上的数据,因此如果该安装不是从分支链接引用的,则返回设计为空。请注意,这是该设备上曾经的首次安装,因此即使在安装之间,这些值也不会改变。如果您希望它以不同的方式进行测试,请参阅debug mode。
我怀疑您可能不小心合并了您的Activity
中onStart()
方法中的Branch sn-ps 和您自定义Application 类中的onStart()
方法。如果是这样,查看SDK integration guide 可能会有所帮助。
【讨论】:
不确定你在#2 中的意思。我在问题中发布的所有内容都来自 Activity 的 onStart()。在应用程序的 onCreate() 中,我有 Branch.getAutoInstance() 和 Branch.enablePlayStoreReferrer()。 这很可能是问题所在——你有一些代码(特别是Branch.getAutoInstance
)根本不应该出现在活动中。我建议您回顾一下集成说明,以确保一切都按计划进行。
你是对的,我混淆了 Branch.getAutoInstance() 和 Branch.getInstance() - 不是最好的名称选择:) 不确定这是否是问题的根源,需要进行更多实验。
如果您想手动调试,请随时reach out to the Branch Integrations team!以上是关于Branch.io 在 Android 上安装后首次运行时检索 BranchUniversalObject的主要内容,如果未能解决你的问题,请参考以下文章
Android - Branch.io 深度链接在 chrome 中不起作用
Branch.io SDK 无法在 Unity3D 中的 Android 构建上初始化
如何在 Android 应用程序中使用 branch.io 深层链接添加朋友