我在从branch.io深度链接获取数据时遇到问题。
首先,我在Branch.io仪表板上创建一个链接,并对其进行了测试,似乎工作正常。它甚至显示点击次数,如此处所示: Branch.io Dashboard link status
之后,我尝试在链接上添加数据,如下所示: Branch.io deeplink data
我现在使用的代码基于文档:
handleBranch: function() {
console.log("HANDLING BRANCH");
// Branch initialization
Branch.initSession().then(function(data) {
console.log(data);
if (data['+clicked_branch_link']) {
// read deep link data on click
console.log('Deep Link Data: ' + JSON.stringify(data));
}
});
},
起初,我收到一条错误消息,提示 DeepLinkHandler未定义。因此,在进行了一些研究之后,我发现我需要添加名为 DeepLinkHandler 的附加功能。下面是我用来处理的函数:
function DeepLinkHandler(data) {
console.log("inside DeepLinkHandler");
if (data) {
alert('Data from deep link: ' + JSON.stringify(data));
} else {
alert('No data found');
}
}
到目前为止,看来一切正常,没有错误,但数据始终为空。我看不到在仪表板上设置的键或值。警报始终会导致来自深层链接的数据:{}
我在这里做错了什么?实际应该怎么做?在有关如何处理深层链接的文档上找不到此问题
答案 0 :(得分:0)
您可以使用Branch的React Native SDK来使用链接数据。与手动管理链接相比,这将是最好的选择。为了读取引荐链接的数据,您可以使用 branch.subscribe 方法注册订户回调函数,如下所示:
branch.subscribe(({ error, params }) => {
if (error) {
console.error('Error from Branch: ' + error)
return
}
// params will never be null if error is null
if (params['+non_branch_link']) {
const nonBranchUrl = params['+non_branch_link']
// Route non-Branch URL if appropriate.
return
}
if (!params['+clicked_branch_link']) {
// Indicates initialization success and some other conditions.
// No link was opened.
return
}
// A Branch link was opened.
// Route link based on data in params.
})
使用这种方法,您将在每次打开应用程序时收到回调,以使用与引用链接关联的链接数据。您可以查看我们的documentation和黄金标准sample apps,以获取更多参考。
如有任何其他问题,请随时与我们联系,网址为Integrations@branch.io!