android - 在应用程序内打开分支链接时无法检索链接参数

标签 android branch.io

我们的 Android 应用程序是一款聊天应用程序。用户可以将分支链接粘贴到聊天消息中。当另一个用户点击它时,我们希望检索链接参数以将用户带到另一个屏幕。

不幸的是,当我们点击应用程序内的此类链接时,我们无法检索链接参数(请注意,我们没有使用 WebView ),我们收到错误“警告。 session 初始化已发生。

要强制启动新 session ,请额外设置 Intent ,branch_force_new_session , 至trueonInitFinished(@Nullable JSONObject referringParams, @Nullable BranchError error)方法。

我们该如何解决这个问题?对我来说,如何在该用例中传递新的 Intent 参数并不明显。

注释:

我们的启动器 Activity 是 singleTask 我们在branch.io sdk 4.3.2 onNewIntent()似乎没有被调用(在下面的代码中),也许这就是我们问题的根本原因。

示例代码:

private Branch.BranchReferralInitListener branchReferralInitListener =
            new Branch.BranchReferralInitListener() {

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

@Override
    protected void onStart() {
        super.onStart();
        Branch.getInstance().initSession(branchReferralInitListener, getIntent() != null ?
                getIntent().getData() : null, this);
    }
@Override
    public void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        this.setIntent(intent);
        // activity will skip onStart, handle this case with reInitSession
        Branch.getInstance().reInitSession(this, branchReferralInitListener);
    }

最佳答案

这是 Android SDK v4.3.2 的一个已知问题,我们正在努力解决。 建议您同时尝试以下操作: 当用户尝试打开在后台运行的应用程序时,我们会收到将branch_force_new_session 设置为 true 的错误。 Branch SDK 在启动器 Activity 的 onStart 上初始化,当应用程序从后台进入前台时,它会在 onResume 上初始化。 在这种情况下,我们可能需要在这里重新初始化 SDK。 会要求您按照 Branch 文档 ( https://docs.branch.io/apps/android/#initialize-branch ) 实现以下代码 fragment //Activity 将跳过 onStart,用 reInitSession 处理这种情况 Branch.getInstance().reInitSession(this,branchReferralInitListener);

或者,建议您安装 Branch SDK v4.3.1。

关于android - 在应用程序内打开分支链接时无法检索链接参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60293620/

相关文章:

java - 复制的文件已损坏

c# - 在 C# 中使用 HTTP API 的 Branch.io 链接

ios - iOS 的 Branch.io 链接在安装后不传递数据,但适用于冷启动

android - 在 Android 中,我们真的需要 Branch 吗?

android - Ionic android - 使用预签名 URL 将文件上传到 S3(错误代码 : 3)

java - 多个按钮,每个按钮选择不同的 Activity

ios - branch.io - 参数 +is_first_session 始终为 false

android - 获取错误 "You haven' t 设置分支链接 propoerly"当尝试从分支指标打开链接时?

java - 在警报对话框中,我想显示所选值

java - 使用 Volley 与 ESP8266 与 AndroidApp 通信