У меня есть пусковая установка Activity, которая настроена на получение глубоких намерений Branch.
Если в заднем стеке нет никаких Activity, onInitFinished(JSONObject, BranchError)
выдает это BranchError, а jSONProject имеет значение null:
Предупреждение. Инициализация сеанса уже произошла. Чтобы принудительно запустить новый сеанс, установите для параметра 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
}
}
}
Когда получено намерение и приложение работает, все работает. Когда приложение запускается из-за намерения ветки, я получаю сообщение об ошибке, а параметр referringParams имеет значение null. Я тоже пробовал отложить инициализацию.
Любые идеи?