我正在努力获得一个基本的旅程应用横幅。没有深层链接(在这个阶段),只是当用户访问我们的网站时允许他获得我们的iOS应用程序的基本横幅,或者如果它已经安装则启动它。 问题是横幅始终显示“进入应用程序商店”选项,即使应用程序已安装在设备上也是如此。
我在没有任何帮助的情况下查看了Branch.io: javascript detect whether mobile app is installed和其他类似的问题。
我已经运行了通用链接验证程序和ulv_script.sh,但它没有显示任何问题。
在我执行的网页中:
branch.init('My_key_live_xxx', null, function(err, data) {
console.log('init...');
console.dir(data);
});
调试时,data属性如下所示:
{data: "", data_parsed: {}, has_app: null, identity: null, referring_identity: null, …}
在ios-app的AppDelegate中我除此之外什么都不做:
let branch: Branch = Branch.getInstance()
branch.initSession(launchOptions: launchOptions, andRegisterDeepLinkHandler: {params, error in
if error == nil {
// params are the deep linked params associated with the link that the user clicked -> was re-directed to this app
// params will be empty if no data found
// ... insert custom logic here ...
print("params: %@", params as? [String: AnyObject] ?? {})
}
})
我认为这里不需要特殊代码,直到我真的想要链接到应用程序中的特定位置。现在我只想让应用程序打开(或实际上只是被检测到,因为需要检测打开按钮才能显示...)
半功能,始终指向应用程序商店版本,以防万一有人想要提前查看问题:https://www.papereed.com/player
我想我错过了关于branch.io的一些非常基本的东西,希望有人可以提供帮助。 谢谢!
答案 0 :(得分:2)
由于Apple方面的限制,当用户点击Web浏览器(即Safari)上的Universal链接时,如果该链接与当前网页具有相同的域,则不使用Universal链接打开应用程序,但在Safari中打开链接。您可以阅读有关此行为的更多信息here。
为克服此限制,Branch为Deepview按钮后面的链接使用不同的域,以便所访问的域与当前网页不同。 Deepview按钮后面的链接使用格式' -alternate.app.link'。
的域。请确保您已在权利文件中添加了应用的-alternate.app.link
域名。您可以在此处查看提供有关如何添加域的信息的文档。
对于“在应用中获取/打开”' CTA按钮更新:
这在开发过程中很常见。由于应用程序经常在设备上重新安装,因此分支用于确定应用程序是否安装在设备上的标志has_app
处于故障状态。
要强制重置has_app
变量,请从“下载”中更改Journey的横幅CTA。要打开'请按照以下步骤操作:
-alternate.app.link
),应该可以在应用程序中使用Journeys配置中指定的数据请注意,只有在开发模式下才需要执行上述步骤以进行测试。在生产中,用户不会看到这个问题。此外,请注意,CTA按钮可能需要一些时间才能更新。高峰时段可能长达30分钟。