2017-04-25 90 views
0

我正在使用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只安装或任何安装。

在安装后第一次运行时,我还需要做些什么来获取推荐链接?

回答

0

亚历克斯从Branch.io在这里:

夫妇的事情谈论。

  1. getFirstReferringParams方法并不完全符合您的期望。它在链接上返回数据,导致首次在该设备上安装,因此如果该安装未从分支链接引用,则返回将根据设计而为空。请注意,这是该设备上第一次安装,所以即使在安装期间这些值也不会更改。如果您希望它的行为与测试目的不同,请参阅debug mode
  2. 我怀疑你可能在你的自定义Application类中的ActivityonStart()方法中意外地合并了onStart()方法中的分支片段。如果是这样,这可能有助于审查SDK integration guide
+0

不确定你在#2中的含义。我在我的问题中发布的所有内容均来自Activity的onStart()。在应用程序的onCreate()我有Branch.getAutoInstance()和Branch.enablePlayStoreReferrer()。 –

+0

这可能是问题 - 你有一些代码(特别是'Branch.getAutoInstance'),它根本不应该在Activity中。我建议通过集成指令返回,以确保一切都按计划进行。 –

+0

你是对的,我混淆了Branch.getAutoInstance()和Branch.getInstance() - 不是名称的最佳选择:)不确定这是否是问题的根源,需要进一步实验。 –