2015-11-24 3 views
0

У меня возникают проблемы с тем, что Branch.io работает в приложении Android от Cordova. У меня есть целевая страница, которая анализирует данные из глубоких ссылок branch.io и перенаправляет пользователя на правильную страницу. Мой Javascript для этой страницы содержит:Branch.io Cordova API - init() не работает на устройстве Android

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 
} 

Затем я создал Branch.io глубокую ссылку на эту целевую страницу в Web API и протестировали его в хроме, который работает.

Тогда я попытался перейти к приложению Кордовы ...

Я последовал за это руководство, чтобы подготовить приложение для branch.io: (. Я установил плагин и адаптировал файл манифеста) https://dev.branch.io/recipes/quickstart_guide/cordova/

Но когда я пытаюсь открыть ту же самую ссылку, которая работала в chrome на моем устройстве Android, приложение открывается правильно, и целевая страница загружается, но я не forwared. Вместо этого я вижу следующую ошибку в 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

ответ

0

Мой коллега понял это:

Branch.io создает запись branch_session в локальном хранилище андроида устройства. На моем устройстве эта сессия была повреждена как-то и device_fingerprint_id был пуст:

{"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}"} 

После очистки локального хранения * сеанс был недавно создан, и теперь выглядит следующим образом:

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

И теперь глубокие связующие работы.

Kr, Лив

* Чтобы очистить локальное хранилище я использовал хром: // инспектировать -> инспектировать WebView, перейдите на вкладку Ресурсы, выберите «локальное хранилище» и правильный URL, а затем удалить все значения.