我有一个启动器 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
}
}
}
当收到一个意图并且应用程序在后台运行时,一切正常。当应用程序由于分支意图而启动时,我收到一个错误,并且引用参数为空。我也尝试过延迟初始化。
有任何想法吗?