Branch.io深层链接在Cordova上始终返回空

时间:2018-10-16 09:35:13

标签: cordova-plugins handler branch.io deeplink

我在从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');
    }
}

到目前为止,看来一切正常,没有错误,但数据始终为空。我看不到在仪表板上设置的键或值。警报始终会导致来自深层链接的数据:{}

我在这里做错了什么?实际应该怎么做?在有关如何处理深层链接的文档上找不到此问题

1 个答案:

答案 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!