Глубокая ссылка не работает с Branch

Вот что я получил в своем манифесте:

<activity
     android:name=".activities.VidyoSampleActivity"
     android:label="@string/app_name"
android:configChanges="orientation|screenSize">
     <intent-filter>
         <data android:scheme="facetalk" 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>
 </activity>
<receiver android:name="io.branch.referral.InstallListener" android:exported="true">
<intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<meta-data android:name="io.branch.sdk.BranchKey" android:value="key_live_hjyeOhAByhF1x452yXtuEjdpCzhMiEAB" />
<meta-data
android:name="io.fabric.ApiKey"
android:value="c13e89c059c32c08041932f2d48b4e5bf1054b4a" />

Я использую эту версию: compile 'io.branch.sdk.android:library:2.+'

И я делаю в своем классе Application инициализацию. Это схема URL-адресов, которую я установил на своей панели инструментов.branch.io: facetalk://

Но когда я пробую эту ссылку:

facetalk://facetalk.vidyo-nl.com/mobile.html?key=saETMuvxjeW2akgzbyt46Xffio&guestname=Test123&secure=yes
Ничего не делает.

Почему это? Я даже создал код для ветки из плагина Fabric AndroidStudio. и это все еще не работает. Что я делаю не так? Дайте мне знать, если нужна дополнительная информация

PS: Если я удалю из фильтра намерений это:

 android:host="open"

Это будет работать. Но я не думаю, что это проходит через такую ​​ветку. потому что это не входит в это:

    Branch branch = Branch.getInstance();
    branch.initSession(new Branch.BranchReferralInitListener() {
        @Override
        public void onInitFinished(JSONObject referringParams, BranchError error) {
            if (error == null) {
                Log.i("BranchConfigTest", "deep link data: " + referringParams.toString());
            }
        }
    }, this.getIntent().getData(), this);

После добавления некоторых журналов. Я узнал, что это регистрируется, когда приложение запускается в первый раз:

11-16 12:18:45.237: I/BranchConfigTest(25065): deep link data: {"+is_first_session":false,"+clicked_branch_link":true,"room":"DpoxihjuKKKE24FAP2ByTILdZsg","guestname":"John","secure":"true","$marketing_title":"Join Conference","$one_time_use":false,"~creation_source":1,"~feature":"marketing","~id":"325753563785928408","~marketing":true,"+click_timestamp":1479295095,"+match_guaranteed":true,"~referring_link":"https:\/\/facetalk.app.link\/join?room=DpoxihjuKKKE24FAP2ByTILdZsg&guestname=John&secure=true"}

Я не понимаю, как это показано? Потому что я просто запускаю приложение, я не нажимал ни на какую ссылку. Также, когда я нажимаю на ссылку, которую я создал, она больше не вызывается


person rosu alin    schedule 14.11.2016    source источник


Ответы (2)


Алекс из Branch.io здесь: вам нужно создать ссылку на ветку и протестируйте с этим URL. Прямой ввод пути диплинка со схемой URI не является правильной реализацией и (как вы обнаружили) не будет работать.

person Alex Bauer    schedule 14.11.2016
comment
Я создал ссылку на ветку, из маркетинга. но если я попытаюсь открыть его, у меня появится хром, а не мое приложение - person rosu alin; 16.11.2016
comment
Как будто он даже не распознает, что у меня установлено приложение. - person rosu alin; 16.11.2016
comment
Существует ряд причин, по которым это может происходить, и их трудно отлаживать без дополнительных подробностей. Я бы порекомендовал отправить заявку в отделу интеграции. - person Alex Bauer; 16.11.2016

Интеграция Branch.io показывает, что мне нужно добавить намерение следующим образом:

<intent-filter>
            <data android:scheme="facetalk" 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>

Но это не сработало для ветки 2.x. Вот как я смог добавить намерение:

   <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="facetalk.app.link" />
        </intent-filter>
person rosu alin    schedule 16.11.2016
comment
Это на самом деле не правильно. Вы добавили фильтр намерений для ссылки приложений. Первый — это стандартный вариант схемы URI. Вам нужны оба из них для полноценной реализации Branch на Android. - person Alex Bauer; 16.11.2016
comment
Первый так не работает. Я модифицировал его, вынул android:host=open и он работает, но я не знаю, работает ли он из-за нормальной схемы uri или работает через ветку? - person rosu alin; 17.11.2016
comment
Это зависит от того, открыли ли вы адрес схемы URI или сгенерированную ссылку Branch? - person Alex Bauer; 17.11.2016