有时我们会使用类似 vscode://file/xxx
打开本地应用程序,这时我们可能希望用户没有安装对应的应用程序时,提示用户去安装,我们可以知道用户是否安装了对应的应用程序吗?目前答案是否定的,主要由于隐私问题,浏览器没有提供对应的功能,使用自定义协议打开应用的结果我们也是获取不到的。
目前有一种不太准确的方式:通过检测一定时间内是否触发了 window
的 blur
事件来判断是否打开了应用程序。这种方式应用程序打开的时间越长越不准确,因为用户可能切换标签页,看看别的应用,都会误判为打开了应用程序。
参见: