Android Branch IO referParams为false

时间:2017-12-01 03:56:35

标签: android branch.io

我现在在Android上处理分支io。 这很奇怪。如果我先关闭我的应用程序并单击该链接,该链接会将我引导至我的应用程序并打开应该显示的页面。但是,如果我打开我的应用程序并单击主页按钮,然后单击该链接,该链接会将我引导至...但页面未显示。我只能通过分支io看到主页面没有路由。

这是我的代码。

@Override
protected void onStart() {
    super.onStart();
    branchIO();
}

private void branchIO() {
    Branch branch= Branch.getInstance();

    branch.initSession(new Branch.BranchReferralInitListener(){

        @Override
        public void onInitFinished(JSONObject referringParams, BranchError error) {

            if (error == null) {
                try{
                    Log.d("log", referringParams.toString());
                    //...my routing logic...
                }catch(Exception e){
                    Log.e("log", "branch io error",e);
                }
            } else {
               Log.i("log", error.getMessage());
            }
        }
    }, this.getIntent().getData(), this);

    BranchIO.branchUniversalObject.generateShortUrl(this, BranchIO.linkProperties, new Branch.BranchLinkCreateListener() {
        @Override
        public void onLinkCreate(String url, BranchError error) {
            if (error == null) {
            }
        }
    });
}

如果我先关闭我的应用程序,那么日志就是这个

  

D / log:{" $ og_title":"₩230000"," ~create_source":5," $ og_description": " blah blah"," + click_timestamp":1512100123,........"}

但是如果我先打开我的应用并将其放在后台,那么日志就是这个

  

D / log:{" + clicked_branch_link":false," + is_first_session":false}

我阅读了很多StackOverflow和GitHub页面,但无法找到解决方案。 谢谢你的阅读!

修改

我忘了在onNewIntent中使用this.setIntent(intent)。 所以在添加之后,它运作良好。

@Override
public void onNewIntent(Intent intent) {
    this.setIntent(intent);
}

谢谢!

1 个答案:

答案 0 :(得分:1)

来自Branch.io的Aaron。

您可能会遇到此错误的原因。以下是一些:

  1. 您没有初始化分支并处理您的深层链接 主要/启动活动。

  2. 您的Main / Splash活动没有 launchMode设置为singleTask

  3. 您没有覆盖onNewIntent() 在您的Main / Splash活动中

  4. 如果您正在使用 CustomApplicationClass,确保您正在初始化Branch Branch.getAutoInstance(this);

  5. 您可以找到主要/启动活动here的示例。

    您还可以查看我们的测试平台应用程序,它是Branch Android SDK的完整工作示例here