我们有一个高级网页(ASP.NET,C#),并且需要在客户端计算机上安装一个应用程序,以便充分利用该网页。该应用程序是一个托盘应用程序,主要有两个任务。检测Web服务器上何时发生某些事件(例如,受邀参加会议或通知即将举行的会议)。trayapp的另一项任务是使用自定义协议(trayapp://)执行一些对服务器的Ajax调用。
我们遇到的一个问题是如何确定应用程序是否安装在本地计算机上。现在,用户必须选中一个复选框以通知网站该应用程序已安装,并且可以安全地调用trayapp:// url调用。
是否可以通过JavaScript或类似方法检测我们的应用程序是否安装在本地计算机上?
该检查需要对IE,FF和Opera浏览器有效。
如果要在浏览器中使用javascript进行检测,则可以使用集合“ navigator.plugins”。它适用于Firefox,Opera和Chrome,但不幸的是不适用于IE。
更新:在FF,Opera和Chrome中,您可以像这样轻松地对其进行测试:
if (navigator.plugins["Adobe Acrobat"]) { // do some stuff if it is installed } else { // do some other stuff if its not installed }
更新#2:如果它是IE中的ActiveX对象,则可以使用以下方法测试它是否存在:
function getActiveXObject(name){ try{ return new ActiveXObject(name); } catch(err){ return undefined; } };
IE的另一种方法类似于JohnFx所建议的(我在这里找到它并且没有对其进行测试):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Internet Settings\User Agent\Post Platform