我想通过JS检测用户是否安装了特定的应用程序。
我知道将会弹出通用的应用程序商店标签"下载此应用程序"如果他们没有安装它。我不是在问这个问题。
我有一个概念,但它不完整。这将尝试针对iPhone和Android设备。
知道具有特定前缀的链接可以触发应用程序打开:
不幸的是,我的客户不希望应用程序自动打开(或尝试打开),但只是知道它是否已安装。
思考?在我的逻辑中发出错误?变通?现有方案?
由于
答案 0 :(得分:0)
可能无法做到这一点,因为一般来说,您不能从网页上浏览用户的设备。即使用户执行或未安装的应用程序并不是最敏感的个人信息,但将这些信息暴露给来自Web的脚本仍然存在一些安全/隐私问题。应用程序商店标签可能是您最接近的标签,因为它是提供类似但受保护功能的官方API。
答案 1 :(得分:0)
我可以想到两种尝试解决问题的方法,尽管没有一种方法特别好。从iOS 6开始,您可以使用Smart App Banners来宣传应用。
最明显的解决方案是隐藏用户的任何操作,例如通过阻止在发出URL请求后显示活动。我对此没有任何经验,也无法告诉您隐藏它的程度。
说实话,我不知道第二种方法是否适用于移动设备。它已经被大量用于桌面应用程序,并允许应用程序间通信 - 包括浏览器和应用程序之间的通信。但是,由于移动设备通常具有高安全性限制,因此可能性有限。这是一个高度理论性的建议,因为我很确定它是不合适的,是否可能 您的应用必须在未使用但固定的端口上提供微型HTTP服务器。然后,您的JavaScript代码可以使用JSONP与应用程序通信(假设浏览器的安全限制不会阻止此操作)。如果通信失败,您可能认为未安装该应用程序。
在任何人试图批评这种方法之前,让我说这是理论上的可能性,可能不稳定,并且不适合大多数应用。对于这样的次要任务,运行HTTP服务器的工作量太高了。