检测或检查电脑中安装的现有应用程序
Detect or check existing applications installed in PC
我正在开发一个网站。在我的网站上,我创建了一些应用程序和链接到这些应用程序的按钮。一旦用户单击该按钮,系统将提示用户安装该应用程序。
我的问题是:
如果用户没有在他们的电脑中安装应用程序,那么一旦他们点击按钮,就会提示他们在电脑中安装这些应用程序;但是如果他们已经在他们的PC上安装了应用程序,则该应用程序应当拒绝或者警告用户已经安装了相同的应用程序。
那么,我应该如何编写代码来检测或检查应用程序是否已经安装到用户的PC中呢?
您有几个选项
-
Mime类型
在大多数浏览器(而不是IE)上,您可以看到定义的mime处理程序,例如application/foo。然后,您可以循环使用
navigator.mimeTypes
,并查看它是否存在。它不是一个数组(严格意义上),所以你需要转换它var mimes = Array.prototype.slice.call(navigator.mimeTypes) if (mimes.length && mimes.indexOf("application/foo") !== -1) { // we've got it! } else { // we're on IE and/or the app isn't installed }
-
扩展/插件
除了你的应用程序的正常行为外,它还可以在用户的浏览器中安装一个非常简单的小扩展。该扩展将实现一个仅在您的网站上活动的内容脚本,并用"运行"按钮替换"下载"按钮。这可能有点过头了,会惹恼用户。
-
注册custom://uri
自定义URI允许您使用这种巧妙的技巧。如果你的应用程序没有安装,它将无法重定向,下载URL将被加载。例如,如果您安装了iTunes,请尝试将appurl更改为
itunes://foobar
。var appurl = 'myapp://launch'; var downloadURL = '/installer.exe'; var timeout; function preventPopup() { clearTimeout(timeout); timeout = null; window.removeEventListener('pagehide', preventPopup); } function startApp() { document.location = appurl; timeout = setTimeout(function () { location.href = downloadURL; }, 1000); window.addEventListener('pagehide', preventPopup); } startApp();
这可能是最好的解决方案。
- 将应用程序注册到URI方案(MSDN)
- 在Ubuntu 11.04、11.10、GNOME 3.0中创建自定义URL处理程序
- 如何将自定义协议映射到Mac上的应用程序
相关文章:
- 有没有一种方法可以从Javascript检测特定的应用程序是否安装在(AndroidiOS)设备上
- 在安装后首次运行应用程序时从 UIBebView 发出 jQuery Ajax 请求
- 如何让我的ember.js应用程序导入从bower或npm安装的模块
- 如果从我的网站在浏览器中安装了其他程序,如何在移动应用程序中打开共享对话框
- Chrome扩展应用程序在安装后不会显示徽标图像
- Angular应用程序无法安装,原因是出现错误:[$injector:modulerr]
- 当应用程序没有安装时,如何将用户重定向到(android,ios)市场
- 将 ScrollMagic 安装到 Sails.js 生成的 Web 应用程序中
- 理论上是否有可能使用 chromium 的可安装网络应用程序 API 构建纯 JS bittorrent
- 使用 JavaScript 或 C# 检查客户端计算机上是否安装了 Java 应用程序(不是 JAVA!)
- 如何在启动应用程序之前强制网络驱动程序安装应用程序
- 如何防止iOS野生动物园警报时尝试打开未安装的本机应用程序
- 如何在已部署的 Heroku 应用程序上安装我的 bower 依赖项
- 单击按钮即可安装 silverlight 应用程序
- 我怎样才能一致地获取安装我的 CakePHP (2.4) 应用程序的根文件夹
- 检测iOS设备上是否安装了应用程序并显示适当的消息
- 使用流星应用程序设置谷歌分析:跟踪未安装错误
- 是否有可能告诉如果覆盖新标签页被打开,因为一个应用程序安装
- 反应原生领域:应用程序安装/更新时的初始数据
- 访问应用程序安装目录