Branch.io Cordova API - init()在Android设备上失败

时间:2015-11-24 08:03:10

标签: javascript android cordova cordova-plugins branch.io

我在让Branch.io在Cordova驱动的Android应用程序中工作时遇到了问题。我有一个登陆页面,用于解析来自branch.io深层链接的数据,并将用户转发到正确的页面。我在这个页面的javascript包含:

function onDeviceReady() {
  console && console.log("Device Ready");
  initBranch();
}

function initBranch() {
  branch.init(<branchKey>, function(err, data) {

    console && console.log("branch init error: " + err);

    //then the parsing and forwarding follows - omitted here
}

然后,我在web api中创建了一个指向此着陆页的Branch.io深层链接,并在chrome中进行了测试。

然后我试图转移到Cordova应用程序......

我按照本指南为branch.io准备应用程序: https://dev.branch.io/recipes/quickstart_guide/cordova/(我安装了插件并调整了Manifest文件。)

但是当我尝试在我的Android设备上打开Chrome中使用相同的链接时,该应用程序正确打开并且登陆页面加载,但我并没有意识到。相反,我在logcat中看到以下错误:

I/chromium(19382): [INFO:CONSOLE(22)] "Device Ready"
[...]
I/chromium(19382): [INFO:CONSOLE(29)] "branch init error: Error: API request /v1/open missing parameter device_fingerprint_id"

谁能告诉我我做错了什么?我刚刚开始了解Cordova和Branch.io所以它可能是我想要的小东西。

谢谢, LIF

1 个答案:

答案 0 :(得分:0)

我的一位同事想出来了:

Branch.io在Android设备的本地存储中创建一个条目branch_session。在我的设备上,此会话已损坏以某种方式并且device_fingerprint_id为空:

@media only screen and (min-width:320px) { ... }

清除本地存储*后,会话刚刚创建,现在看起来像这样:

{"session_id":"198413861345316824","identity_id":"198398707320770300","device_fingerprint_id":null,"browser_fingerprint_id":null,"link":"<link>","data":"{\"+is_first_session\":false,\"+clicked_branch_link\":false}"}

现在深层链接工作。

氪, LIF

* 要清除本地存储,我使用了chrome:// inspect - &gt;检查webview,转到资源选项卡,选择“本地存储”和正确的URL,然后删除所有值。