深层链接不适用于分支

时间:2016-11-14 11:26:16

标签: android deep-linking twitter-fabric branch.io deeplink

这就是我在Manifest中所得到的:

<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类中做了初始化。 这是我在dashboard.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"}

我不明白这是如何展示的?因为我刚启动应用程序,我没有按任何链接。 此外,当我按下我创建的链接时,这不再被调用

2 个答案:

答案 0 :(得分:1)

分众来自Branch.io的Alex:您需要create a Branch link并使用该网址进行测试。使用URI方案直接进入深层链接路径不是正确的实现,并且(如您所发现的)将无法正常工作。

答案 1 :(得分:0)

Branch.io Integration显示我需要添加意图:

<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>