js如何判断pc端是否安装了某个程序。

clipboard.png
类似于百度网盘 下载按钮 判断本地程序是否安装,如果没有安装提示用户,安装了后直接调用接口启动应用。

阅读 9.2k
1 个回答

不行,除非你在浏览器上装有扩展协助。因为网页脚本是不受信的程序,浏览器的设计会尽量防止泄漏这类用户隐私。(曾经已访问链接使用网页脚本是可以判断出样式的差异的,后来浏览器决定已访问链接和未访问链接只能有颜色上的差异,并且网页脚本看上去都是未访问过的样子。当然这类信息通过一些 side channel 还是可能拿到些许,但是用户已安装的软件显然是拿不到的。)

你可以参考很多手机应用从浏览器呼出的用户界面设计,或者 Telegram 那个加群链接的界面设计。

如果你能控制你想调用的软件,你可以让你的软件给浏览器安装个助手(不推荐),或者开个HTTP服务通过浏览器来调用(很危险,参考百度系 Android 应用的某个重大安全泄漏)。

你的截图是浏览器的功能。当网页试图访问浏览器不认识的协议(比如 myapp://xxx)时,如果能够处理相应协议的软件已经安装,浏览器就会询问用户。这个过程对于网页脚本是不可见的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题