Deep link 不适用于 Branch
Deep link does not work with 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.+'
并且我在我的应用程序 class 中进行了初始化。
这是我在 dashboard.branch.io 上设置的 url 方案:facetalk://
但是当我尝试这个时 link:
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"}
我不明白这是怎么显示的?因为我只是启动应用程序,我没有按任何 link。
此外,当我按下我创建的 link 时,它不再被调用
来自 Branch.io 的 Alex:您需要 create a Branch link 并使用 URL 进行测试。使用 URI 方案直接输入深层 link 路径不是正确的实现,并且(正如您发现的那样)将不起作用。
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>
这是我在清单中得到的:
<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.+'
并且我在我的应用程序 class 中进行了初始化。
这是我在 dashboard.branch.io 上设置的 url 方案:facetalk://
但是当我尝试这个时 link:
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"}
我不明白这是怎么显示的?因为我只是启动应用程序,我没有按任何 link。 此外,当我按下我创建的 link 时,它不再被调用
来自 Branch.io 的 Alex:您需要 create a Branch link 并使用 URL 进行测试。使用 URI 方案直接输入深层 link 路径不是正确的实现,并且(正如您发现的那样)将不起作用。
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>