我使用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商店重定向?
我真的很感谢你的帮助。提前致谢。
答案 0 :(得分:1)
您所描述的是Branch.io链接的标准行为(完全披露:我在分支机构团队中)。
附加到生成的分支链接(例如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后备。