2017-04-25 60 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() - 不是名稱的最佳選擇:)不確定這是否是問題的根源,需要進一步實驗。 –

相關問題