关于 URL Protocol

Web本身支持通过自定义URL Protocol来调用本地的应用程序,例如只需要在浏览器中输tencent://(tencent://为QQ的自定义URL Protocol)就能够使得浏览器去寻找注册表并打开对应的本地应用程序。

基于此,只需要在开发的APP中定义好协议地址。然后在web中使用a标签链接就可以打开APP。

但是可能用户可能还没有安装APP,这里怎么做检测呢?

检测是否唤醒成功

在网上搜索了一会儿解决方案,大多的回答也都是 protocolcheck.js

一种浏览器与另一种浏览器的实现方式不同,有时取决于您使用的是哪种操作系统。他们中的大多数都是黑客,这意味着解决方案并不是最漂亮的。

重要功能:如果当前选项卡在尝试检测焦点时未处于活动状态,那么它会在焦点回到当前选项卡上后立即尝试打开协议。当有一个长时间运行的进程并且在该进程结束时我们需要检测是否可以使用自定义协议打开该文件时,它更有用。用户可能在不同的选项卡或应用程序上工作,因此在这种情况下,库会在当前选项卡获得焦点后立即尝试检测自定义协议。