繁体   English   中英

检测是否在iPad或iPhone(iOS6和iOS7)上安装了应用

[英]Detect if an app is installed on iPad or iPhone (iOS6 & iOS7)

我正在使用Apple的智能应用程序横幅广告在网站上推广我的应用程序,但这不适用于iPad或iPhone上的其他浏览器(例如Chrome)。

因此,我已经实现了一个名为Smart App Banner的JS插件,但是在iOS7中,本机横幅能够检测到已安装该应用并打开该应用,而无需前往应用商店,因此可以使用JS进行同样的操作并检查是否已安装应用程序并打开该应用程序,而不是去应用程序商店?

无法通过简单的javascript调用来了解该应用程序是否已安装。 在Branch Metrics中,我们从头开始构建了可定制的应用程序下载横幅。 让我描述您可以采用的一种基本方法,然后再描述更高级的版本。

简单版

带有带有“在应用程序中查看”按钮的横幅。 单击该按钮时,它应该做两件事:1.触发URI方案,但在iframe中隐藏错误消息。2.如果未安装应用,请使用setTimeout重定向到App Store或Play Store。

在正文中,执行以下操作(如果启动应用程序的URI失败,这将有助于隐藏难看的错误消息):

<iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>

然后,当用户点击按钮时,触发以下脚本:

// Deep link to your app goes here
document.getElementById("l").src = "my_app://";

setTimeout(function() {
    // Link to the App Store should go here -- only fires if deep link fails                
    window.location = "https://itunes.apple.com/us/app/my.app/id123456789?ls=1&mt=8";
}, 500);

缺点是您不知道是否安装了该应用程序,因此该按钮需要说一些类似“在应用程序中查看”的通用名称,而不是根据用户是否拥有该应用程序专门说“安装”或“打开”。

硬版(请勿这样做)

如果您想知道页面加载时用户是否拥有该应用程序,则需要:

  1. 将浏览器中的Cookie绑定到该用户
  2. 记录用户的数字指纹(IP地址,操作系统,操作系统版本,屏幕尺寸等)并将其发送到您的后端。 将此与cookie关联。
  3. 当用户打开您的应用程序时,发送相同的数字指纹。 您的后端可以将其与基于浏览器的数字指纹相匹配,并请注意此用户/ cookie具有该应用程序
  4. 在随后访问您的网站(带有横幅)时,返回页面的服务器应使用cookie来查找用户是否拥有该应用程序。 如果是这样,则返回带有文本“ open”的横幅。 如果不是,则返回带有文本“ install”的横幅。

这是不平凡的,但肯定是可行的。 简单版本可以在几分钟内完成(您只需要弄清楚横幅的样子),而硬版本则需要后端和应用程序修改以及无休止的测试和调整,以确保数字指纹识别和匹配正确。 我们在Branch从事这项工作已经一年了,并且知道它是多么痛苦。

希望这可以为您提供一些适用于智能应用横幅的可行解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM