branch.io:无法从 javascript 检测已安装的应用程序
Posted
技术标签:
【中文标题】branch.io:无法从 javascript 检测已安装的应用程序【英文标题】:branch.io: cannot detect installed app from javascript 【发布时间】:2017-09-21 12:12:11 【问题描述】:我正在尝试制作一个基本的旅程应用横幅。没有深度链接(在这个阶段),只是一个基本的横幅,当用户访问我们的网站时,他可以获取我们的 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_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 的一些真正基本的东西,希望有人能提供帮助。 谢谢!
【问题讨论】:
【参考方案1】:由于Apple方面的限制,当用户在网络浏览器(即Safari)上点击通用链接时,如果该链接与当前网页具有相同的域,则它不会使用通用链接来打开应用程序而是在 Safari 中打开链接。您可以阅读有关此行为的更多信息here。
为克服此限制,Branch 为 Deepview 按钮后面的链接使用不同的域,以便访问的域与当前网页不同。 Deepview 按钮后面的链接使用格式为“-alternate.app.link”的域。
请确保您已在权利文件中为您的应用添加了-alternate.app.link
域。您可以在此处查看提供有关如何添加域的信息的文档。
对于“获取/在应用中打开”CTA 按钮更新:
这在开发过程中很常见。由于该应用程序经常在设备上重新安装,因此 Branch 用于确定该应用程序是否安装在设备上的标志 has_app
处于错误状态。
要强制重置 has_app
变量以将 Journey 的横幅 CTA 从“下载”更改为“打开”,请按照以下步骤操作:
-
单击“下载”按钮 - 这应该会重定向到 Play 或 App Store
安装应用程序
返回带有 Journeys 横幅的网页,该横幅仍应显示“下载”按钮
再次点击“下载”按钮 - 应用应该会打开(一旦您将权利文件更新为包含
-alternate.app.link
),并且“旅程”配置中指定的数据应该可供应用使用
关闭然后重新打开带有旅程横幅的网页 - 横幅现在应该有一个“打开”按钮
点击“打开”按钮
请注意,上述步骤仅在开发模式下需要用于测试目的。在生产环境中,用户不会看到这个问题。另外,请注意,CTA 按钮可能需要一些时间才能更新。高峰时段最长可达 30 分钟。
【讨论】:
谢谢你,你给的强制重置步骤成功了!可能是这个和 CTA 按钮更新延迟的组合。以上是关于branch.io:无法从 javascript 检测已安装的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
无法为 Branch.io 不同的深层链接测试我的 Facebook 广告
在 ionic 3 中,branch.io deeplink 无法按预期工作