branch io web sdk生成链接作为横幅

时间:2016-12-21 09:17:07

标签: branch deep-linking branch.io

我使用Branch.io web SDK创建了一个智能横幅,但我还需要生成一个分支深度链接网址(例如https://bnc.lt/l/3HZMytU-BW),以用作普通链接中的href值。

以下是我希望此链接具有的行为:

如果用户在移动设备上

  • 如果未安装应用,则将用户发送到应用商店
  • 如果已安装应用
  • ,则会深入链接到应用

如果用户在桌面上

  • 将用户发送到包含附加自定义参数的网址(例如www.mysite.com/welcome)(例如www.mysite.com/welcome?deeplink=true&getme=20

我已经看到我可以使用javascript banner.link()方法或HTTP API调用生成分支链接。然后我可以在生成的链接中添加查询字符串,这在桌面上可以正常工作。如果在用户单击链接时安装了这些查询字符串值,那么这些查询字符串值是否也可用?

我已经看到,如果未安装该应用,我可以为每个设备(iOS,Android,桌面等)传递不同的回退网址。这如何在移动设备上运行?如果安装了应用,那么在指定这些后备网址时它是否仍会打开?这些后备网址是否会覆盖App / Play商店重定向?

我真的很感谢你的帮助。提前致谢。

1 个答案:

答案 0 :(得分:1)

链接行为

您所描述的是Branch.io链接的标准行为(完全披露:我在分支机构团队中)。

  • 桌面用户将被发送到后备网站网址
  • 安装了应用的移动用户将被发送到应用
  • 未安装应用程序的移动用户将被发送到App Store(虽然您可以覆盖它并将其发送到其他地方)。

追加查询参数

附加到生成的分支链接(例如https://branchmaps.app.link/LC3Cj399jz?foo=bar)的查询参数将传递到网站后备目标和应用。

桌面网站

我们假设https://branchmaps.app.link/LC3Cj399jz的桌面目的地为https://branch.io/maps。将foo=bar附加到https://branchmaps.app.link/LC3Cj399jz?foo=bar会自动将foo=bar附加到目标网址:https://branch.io/maps?foo=bar

移动应用

当应用启动时,将捕获并在链接data dictionary内返回附加的参数(例如,https://branchmaps.app.link/LC3Cj399jz?foo=bar)。这看起来如下所示:

{
    tags: [ 'tag1', 'tag2' ],
    channel: 'facebook',
    feature: 'dashboard',
    stage: 'new user',
    alias: 'myalias',
    data: {
        foo: 'bar',
        // other data
    }
}

但是,如果您将查询参数附加到分支链接内的桌面回退网址(例如https://branch.io/maps?foo=bar),则不会将其传递给应用。相反,您应该在branch.link()调用中指定这些内容,如下所示:

branch.link({
    tags: [ 'tag1', 'tag2' ],
    channel: 'facebook',
    feature: 'dashboard',
    stage: 'new user',
    data: {
        foo: 'bar',
        '$desktop_url': 'https://branch.io/maps?foo=bar',
    }

}, function(err, link) {
    console.log(err, link);
});

后备网址

如果您指定后备网址($android_url$ios_url),则这些只会在未安装该应用时生效。这些将覆盖默认的App / Play Store后备。