zjffun blog

JS 检测是否成功打开应用程序(自定义协议是否存在)

更新于 写于 JSCustom Protocol

有时我们会使用类似 vscode://file/xxx 打开本地应用程序,这时我们可能希望用户没有安装对应的应用程序时,提示用户去安装,我们可以知道用户是否安装了对应的应用程序吗?目前答案是否定的,主要由于隐私问题,浏览器没有提供对应的功能,使用自定义协议打开应用的结果我们也是获取不到的。

目前有一种不太准确的方式:通过检测一定时间内是否触发了 windowblur 事件来判断是否打开了应用程序。这种方式应用程序打开的时间越长越不准确,因为用户可能切换标签页,看看别的应用,都会误判为打开了应用程序。

参见: