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应用程序上处理两次深层链接?