Android 应用上的分支指标链接

Posted

技术标签:

【中文标题】Android 应用上的分支指标链接【英文标题】:branch metrics link on Android app 【发布时间】:2015-06-23 12:47:00 【问题描述】:

我正在使用 android 分支库生成链接,然后通过短信发送。如果用户没有在手机上安装应用程序,您的链接会正确传输到 Play 商店(仪表板中的链接)。安装并运行应用程序后,它会按预期从链接接收所有数据。

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

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

提前致谢,

卡林

【问题讨论】:

【参考方案1】:

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

TL;DR,请确保 Branch 仪表板和清单上的这些匹配

分支仪表板上的包名称与您的应用构建的相同 host="open" 在 Activity 上,因为 Branch 将意图字符串格式化为 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]; 

结束;

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

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

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

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

【讨论】:

感谢您的回答!根据您的评论,我终于成功了。 谢谢。确保包名相同解决了我的问题。

以上是关于Android 应用上的分支指标链接的主要内容,如果未能解决你的问题,请参考以下文章

分支 io:我应该如何配置链接,以便当用户单击尚未安装的 Android 应用程序的链接时打开默认应用程序市场?

如何避免在cordova android应用程序上处理两次深层链接?

延迟深度链接到 android 上的外部应用程序

打开 Branch 链接时 Android 应用程序崩溃

强制 Youtube 链接在 Android/iOS 上的应用程序中打开

如何使用点击超链接的方式打开Android手机上的应用