Проблема в инициализации branch.io

237
08 ноября 2017, 00:03

Использую библиотеку branch.io для работы с app link. В манифесте указываю intent-filter для Branch URI scheme:

<intent-filter>
    <data android:scheme="***" android:host="open" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

Для App Links в манифесте указано:

<intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" android:host="***.app.link" />
            <data
                android:host="***-alternate.app.link"
                android:scheme="https"/>
            <data
                android:host="***.test-app.link"
                android:scheme="https"/>
            <data
                android:host="***-alternate.test-app.link"
                android:scheme="https"/>

LaunchMode у AppLinkActivity указан как singleTask. Инициализирую Branch в Application классе, в методе onCreate:

Branch.getAutoInstance(this);

При открытии AppLinkActivity я получаю instance и инициализирую сессию:

   Branch branch = Branch.getInstance(getApplicationContext());
   branch.initSession((referringParams, error) -> {
        LogFileUtil.writeLog("Finish init session");
        if (error == null) {
            //Кое что делаю
        } else {
           //Кое что делаю
        }
    }, this.getIntent().getData(), this);

Теперь к проблеме. Когда я открываю приложение через AppLink параметр referringParams не пустой и я могу выдернуть из него необходимые мне данные. Но когда мое приложение открыто и я нажимаю по AppLink'y из другого приложения, то параметр referringParams становится пустым. Мне кажется, что дело в инициализации Branch. Как это можно поправить?

Answer 1

Решение - необходимо сделать класс AppLinkActivity главным. Т.е. у этого активити должен присутствовать еще один intent-filter:

<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
READ ALSO
Java: заштриховать Hintergrund

Java: заштриховать Hintergrund

Имеется прямоугольник как графический элементВ нем содержится текст, если нарисовать при помощи drawLine самостоятельно линии-штриховки, то эти...

195
Перевести кусок кода из java в c++

Перевести кусок кода из java в c++

Нужно перевести кусочек кода на С++:

257
Как разбить строку по запятой, кроме случая когда за ней следует пробел?

Как разбить строку по запятой, кроме случая когда за ней следует пробел?

Есть строка 1,2,3,"4, A",B, 5,C,6,7,8Подскажите пожалуйста, как ее разбить на подстроки по запятой но пропустив запятую + пробел? Ниже код который работает,...

218