我正在使用Branch lib和Android来生成我之后通过短信发送的链接。如果用户未在手机上安装应用,则您的链接会正确传输到Play商店(信息中心中的链接)。安装并运行应用程序后,它会按预期从链接接收所有数据。
但是,如果我已在手机上安装了该应用,则按此链接无法打开该应用,但会将我重新定向到Play商店。如果我按下那里的“打开”按钮,应用程序会收到信息但是如何直接从浏览器运行应用程序?我看到我们的iOS实现相同的lib并且它完美无缺 - 即当我有应用程序并且我按下链接时它会打开应用程序而不会将我发送到商店。
也许我在清单中的声明中做错了什么?
提前致谢,
卡林
答案 0 :(得分:3)
Chrome需要一个与您的Android清单中定义的匹配的意图字符串,以正确打开您设备上的应用程序。如果有什么问题,Chrome就不会打开应用程序。如果您使用Branch进行深层链接,则需要确保以下匹配:
TL; DR,确保这些匹配在Branch信息中心和清单上
更长的解释是,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的更多信息。