Android 应用的分支指标 link

branch metrics link on Android app

我正在使用 Branch lib 和 Android 生成 links,然后我通过短信发送。如果用户没有在 phone 上安装任何应用程序,您的 link 会正确传输到 Play 商店(仪表板中的 link)。安装 运行 应用程序后,它会按预期接收来自 link 的所有数据。

但是,如果我已经在 phone 上安装了该应用程序,则按 link 不会打开该应用程序,但会再次将我重定向到 Play 商店。如果我在那里按下 "Open" 按钮,应用程序会收到信息,但是直接从浏览器 运行 应用程序怎么样?我看到了我们对同一个库的 iOS 实现并且它完美地工作 - 即当我拥有应用程序并按下 link 它打开应用程序而不将我发送到商店。

也许我在清单中的声明有误?

提前致谢,

卡林

Chrome 需要一个与您的 Android 清单中定义的内容相匹配的意图字符串才能正确打开您设备上的应用程序。如果出现问题,Chrome 将无法打开该应用程序。如果您使用 Branch for deeplinks,您需要确保以下匹配:

TL;DR,确保这些在 Branch 仪表板和 Manifest

上匹配
  • 分支仪表板上的包名称与您的应用构建的包名称相同
  • host="open" on Activity,因为 Branch 将意图字符串格式化为 scheme://open
  • 在 Branch 上注册的 URI 方案与在 AndroidManifest.xml
  • 中找到的相同
  • 同Activity有如下属性:android.intent.category.BROWSABLE

更详细的解释是 Branch 将 link 绑定到您的帐户,并构建如下所示的 Intent 字符串:

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

结束;

当 Branch 进行重定向时,我们会从您的帐户中提取方案和包,并假设您已将 android:host 设置为 open:

intent://open#Intent;scheme=scheme;package=package;end

并将其放入 window.location。如果您的仪表板或包裹上注册的方案不匹配,或者 open 未在 android:host 键中指定,那么您将被带到 Chrome.

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