2015-06-23 2 views
2

Я использую Branch lib для Android, чтобы создавать ссылки, которые я отправляю позже через sms. Если у пользователя нет приложения, установленного на телефоне, ваша ссылка правильно перейдет в Play Store (ссылка в панели инструментов). После установки и запуска приложения он получает все данные из ссылки, как и ожидалось.ссылка отраслевых метрик на Android-приложение

Однако, если у меня есть приложение, уже установленное на телефоне, нажатие ссылки не открывает приложение, но перенаправляет меня снова в Play Store. Если я нажму кнопку «Открыть», приложение получит информацию, но как запустить приложение напрямую из браузера? Я видел нашу реализацию iOS той же самой библиотеки, и она работает безупречно - то есть когда у меня есть приложение, и я нажимаю ссылку, она открывает приложение, не отправив меня на хранение.

Возможно, я сделал что-то не так в моей декларации в манифесте?

Спасибо заранее,

Калин

ответ

3

Chrome требует пристальной строки, которая соответствует тому, что это определенно в вашем Android Manifest правильно открыть приложение найденное на устройстве. Если что-то не работает, Chrome не откроет приложение. Если вы используете отделения для deeplinks, вам необходимо убедиться, что следующий матч:

TL; DR, убедитесь, что эти матчи на Branch приборной панели и Manifest

  • имя пакета на ветви приборной панели является так же, как свое приложение построить в
  • хозяин = «открыть» на деятельности, поскольку форматы Branch намерений строк как схемы: // открыть
  • URI схемы зарегистрирован филиал те же, который находится в вашем AndroidManifest.xml
  • Та же активность обладает следующим свойством: android.intent.category.BROWSABLE

Чем больше объясняется тем, что Отделение принимает ссылку привязанной к вашей учетной записи, и строит Intent строки, которая выглядит следующим образом:

intent: 
HOST/URI-path // Optional host 
#Intent; 
    package=[string]; 
    action=[string]; 
    category=[string]; 
    component=[string]; 
    scheme=[string]; 

конец;

Когда Branch делает редирект, мы тянем схему и пакет с вашего счета, и предположим, что вы установили android:host в open:

Цель: // открыть # Intent; схемы = схемы; пакет = пакет; конец "

И место, внутри window.location. Если зарегистрированная схема на приборной панели или пакете не совпадает, или open не указан в ключе android:host, то вы попадёте в Chrome.

Это также важно указать g android.intent.category.BROWSABLE как категория фильтр. Дополнительная информация о строках намерений here.

+0

Спасибо за этот ответ! После вашего комментария я, наконец, сделал трюк. –

+0

Спасибо. Удостовериться, что имя пакета одинаково решает проблему для меня. – Horatio

Смежные вопросы