Android应用上的分支指标链接

时间:2015-06-23 12:47:01

标签: android hyperlink branch metrics branch.io

我正在使用Branch lib和Android来生成我之后通过短信发送的链接。如果用户未在手机上安装应用,则您的链接会正确传输到Play商店(信息中心中的链接)。安装并运行应用程序后,它会按预期从链接接收所有数据。

但是,如果我已在手机上安装了该应用,则按此链接无法打开该应用,但会将我重新定向到Play商店。如果我按下那里的“打开”按钮,应用程序会收到信息但是如何直接从浏览器运行应用程序?我看到我们的iOS实现相同的lib并且它完美无缺 - 即当我有应用程序并且我按下链接时它会打开应用程序而不会将我发送到商店。

也许我在清单中的声明中做错了什么?

提前致谢,

卡林

1 个答案:

答案 0 :(得分:3)

Chrome需要一个与您的Android清单中定义的匹配的意图字符串,以正确打开您设备上的应用程序。如果有什么问题,Chrome就不会打开应用程序。如果您使用Branch进行深层链接,则需要确保以下匹配:

TL; DR,确保这些匹配在Branch信息中心和清单上

  • 分支仪表板上的软件包名称与您的应用程序构建的
  • 相同 在活动上
  • host =“open”,因为分支将意图字符串格式化为 scheme:// open
  • 在Branch上注册的URI方案与您在AndroidManifest.xml中找到的相同
  • 相同的Activity具有以下属性:android.intent.category.BROWSABLE

更长的解释是,Branch将链接绑定到您的帐户,并构造一个类似于以下内容的Intent字符串:

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

端;

当分支执行重定向时,我们从您的帐户中提取计划和套餐,并假设您已将android:host设置为open

意图://开放#意图;方案=方案;包=包;端“

并将其置于window.location内。如果您的信息中心或套餐上的注册方案不匹配,或open密钥中未指定android:host,那么您将被带到Chrome。

将以下android.intent.category.BROWSABLE指定为类别过滤器也很重要。有关意图字符串here的更多信息。