最近遇到一个需求场景,需要进行如下操作:
在Windows下,浏览器前端获得一个特定协议的连接,如果本地存在该协议的客户端,则唤起之;否则,通知用户下载对应客户端。
可以大概拆分成几个小块:
- 识别为特定协议,如test://,ggme://,而不是http://
- 判断本地是否有可以处理该协议的客户端
- 如果没有,下载之,或通知用户下载之
- 如果有,唤起之
进行了多轮谷歌后,我都没有很好的发现。遇到的问题如下:
- 识别特定协议需要info.plist或注册表支持。没有的时候,就没办法达到该目的;
- activeX或NACL,NPAPI等协议或插件,几乎已经被弃用;
- 用IFrame,控制台会输出没有该handler,但是似乎这种日志是没法catch的。
不知道各位,有没有什么解法 :)