0

我有一个启动器 Activity,它设置为接收深层分支意图。

当后栈中没有任何活动时,onInitFinished(JSONObject, BranchError)给出此 BranchError,并且 jSONProject 为空:

警告。会话初始化已经发生。要强制新会话,请将 Intent extra “branch_force_new_session”设置为 true。

AndroidManifest.xml:

    <activity
        android:name="LauncherActivity"
        android:launchMode="singleTask">

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />

            <data android:scheme="myscheme" />
        </intent-filter>

        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />

            <data
                android:host="my.domain.com"
                android:scheme="https" />
        </intent-filter>
    </activity>

活动:

class LauncherActivity : Branch.BranchReferralInitListener {

    override fun onStart() {
        super.onStart()

        Branch.sessionBuilder(this).withCallback(this).withData(parseIntent().data).init()

        if (BuildConfig.DEBUG) {
            IntegrationValidator.validate(this)
        }
    }

    private fun parseIntent(): Intent {
        var newIntent = Intent()
        newIntent = newIntent.putExtra("branch_force_new_session", true)
        newIntent = newIntent.putExtra("branch", intent.dataString)
        return newIntent
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)

        this.intent = intent

        Branch.sessionBuilder(this).withCallback(this).withData(parseIntent().data).reInit()
    }

    override fun onInitFinished(referringParams: JSONObject?, error: BranchError?) {
        if (error != null) {
            // Getting error only when app is not backgrounded
        } else if (referringParams != null) {
            // When app is backgrounded, it works
        }
    }
}

当收到一个意图并且应用程序在后台运行时,一切正常。当应用程序由于分支意图而启动时,我收到一个错误,并且引用参数为空。我也尝试过延迟初始化。

有任何想法吗?

4

1 回答 1

2

分支团队似乎已经解决了这个问题。目前还没有修复,但您可以尝试他们在此处推荐的解决方法。

if else (error.getErrorCode() === BranchError.ERR_BRANCH_ALREADY_INITIALIZED) {
  
branchReferringPramas_ = Branch.getLatestReferringParams();

}

于 2020-09-10T12:14:58.650 回答