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

Javascript 检测应用程序是否安装在iPad或iPhone上(iOS6和iOS7),javascript,ios,iphone,ipad,mobile-safari,Javascript,Ios,Iphone,Ipad,Mobile Safari,我正在使用苹果的在网站上推广我的应用程序,但是这在iPad或iPhone上的其他浏览器(如Chrome)上不起作用 因此,我实现了一个JS插件调用,但在iOS7中,本机横幅能够检测到应用程序已安装并打开它,而不是进入应用程序商店,是否可以使用JS执行同样的操作,并检查是否安装了应用程序,然后打开应用程序,而不是进入应用程序商店?使用简单的javascript调用无法知道是否安装了应用程序。在Branch Metrics,我们从头开始构建了一个可定制的应用程序下载横幅。让我描述一种基本的方法,然后

我正在使用苹果的在网站上推广我的应用程序,但是这在iPad或iPhone上的其他浏览器(如Chrome)上不起作用


因此,我实现了一个JS插件调用,但在iOS7中,本机横幅能够检测到应用程序已安装并打开它,而不是进入应用程序商店,是否可以使用JS执行同样的操作,并检查是否安装了应用程序,然后打开应用程序,而不是进入应用程序商店?

使用简单的javascript调用无法知道是否安装了应用程序。在Branch Metrics,我们从头开始构建了一个可定制的应用程序下载横幅。让我描述一种基本的方法,然后我将描述更高级的版本

简单版

有一个带有按钮的横幅,上面写着“在应用程序中查看”。单击该按钮时,应执行两项操作: 1.触发URI方案,但在iframe中隐藏错误消息 2.如果未安装应用,请使用setTimeout重定向到应用商店或Play Store

在正文中,包含以下内容(如果启动应用程序的URI失败,这有助于隐藏难看的错误消息):

这样做的缺点是,你不知道该应用程序是否已安装,因此该按钮需要显示一些通用信息,如“在应用程序中查看”,而不是根据用户是否拥有该应用程序而具体显示“安装”或“打开”

硬版(不要这样做)

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

  • 在浏览器中保留与此用户关联的cookie
  • 获取用户的数字指纹(IP地址、操作系统、操作系统版本、屏幕大小等),并将其发送到后端。将其与cookie关联
  • 当用户打开你的应用程序时,发送相同的数字指纹。您的后端可以将其与基于浏览器的数字指纹相匹配,并注意此用户/cookie拥有该应用程序
  • 在随后访问您的网站(带有横幅)时,返回页面的服务器应使用cookie查找用户是否拥有该应用程序。如果是,则返回带有文本“打开”的横幅。如果没有,则返回带有文本“install”的横幅
  • 这不是小事,但肯定是可行的。简单版本可以在几分钟内完成(你只需要弄清楚你想要的横幅是什么样子),而硬版本则需要修改后端和应用程序,并进行无休止的测试和调整,以获得正确的数字指纹和匹配。我们在Branch工作了一年,知道这有多痛苦


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

    请检查:-您的问题解决了吗?@PiyushDubey-Yes。关闭,因为它是重复的。
    <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);