Данные моего филиала не "сбрасываются" после того, как я прочитал их в обратном вызове initSession ().Поэтому, если я условно перенаправляю пользователя в зависимости от того, содержит ли Branch параметр url, который я ожидаю получить, пользователь всегда будет перенаправлен, потому что данные ссылки всегда существуют точно так же, как если бы я только что нажал на ссылку.Это происходит до тех пор, пока я не убью приложение вручную.Вот мой код:
В Android создаем простую ссылку без ответвления:
String uri = "myApp://?userId=100";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse(uri));
getActivity().startActivity(intent);
В Ionic, захват данных ссылки и перенаправление на DetailPage:
this.platform.ready().then(() => {
handleBranch();
});
this.platform.resume.subscribe(() => {
this.handleBranch();
});
private handleBranch() {
const Branch = window['Branch'];
Branch.initSession(data => {
if (data['+non_branch_link']) {
let urlStr = data['+non_branch_link'];
const url = new URL(urlStr);
this.nav.push(DetailPage, {userId: url.searchParams.get('userId')});
}
});
}
Я получаю следующие данные из Branch:
{"+ non_branch_link": "myApp: //? UserId = 1950", "+ clicked_branch_link": false, "+ is_first_session": false}
Но если я выхожу из приложения и возвращаюсь, я получаю одни и те же данные снова и снова.
{"+ non_branch_link": "myApp: //? userId = 1950 "," + clicked_branch_link ": false," + is_first_session ": false}
Вот моя общая информация о версии:
"branch-cordova-sdk": "^2.6.24",
li packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : 8.0.0
local packages:
@ionic/app-scripts : 3.1.8
Cordova Platforms : android 6.2.3 ios 4.5.4
Ionic Framework : ionic-angular 3.9.2
System:
Android SDK Tools : 26.1.1
ios-deploy : 1.9.2
ios-sim : 6.1.2
Node : v8.11.1
npm : 5.6.0
OS : macOS Sierra
Xcode : Xcode 9.2 Build version 9C40b
Environment Variables:
ANDROID_HOME : /Users/j/Library/Android/sdk
Параответы на комментарии Аарона: