Branch.io在Android

时间:2017-04-25 23:13:37

标签: android deep-linking branch.io

我使用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());
}

安装后第一次运行时,安装params不为null,但为空 - {}。第二次运行时,安装params包含来自单击链接的正确信息,但'is_first_session'现在为false。

我确实已经在清单中注册了安装referrer接收器,但我不清楚它是否仅适用于PlayStore安装或任何安装。

安装后第一次运行时,我还需要做什么才能获得推荐链接?

1 个答案:

答案 0 :(得分:0)

来自Branch.io的Alex:

要谈谈的事情。

  1. getFirstReferringParams方法并没有达到你期望的效果。它返回导致首次在该设备上安装的链接上的数据,因此如果未从Branch链接引用该安装,则返回将按设计为空。请注意,这是该设备上的第一次永远安装,因此即使在安装之间也不会更改这些值。如果您希望此功能在测试时有所不同,请参阅debug mode
  2. 我怀疑您可能意外地合并了onStart()中的Activity方法和自定义应用类中的onStart()方法的分支片段。如果是这样,可能有助于审核SDK integration guide