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。 我怀疑您可能不小心合并了您的ActivityonStart() 方法中的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 深层链接添加朋友

使用 expo branch.io SDK 和广告合作伙伴链接安装归因

Branch.io 统计

branch.io:无法从 javascript 检测已安装的应用程序