检测用户是否安装了我的Chrome扩展

Detect if user have my Chrome extension installed?

本文关键字:我的 Chrome 扩展 安装 用户 是否 检测      更新时间:2023-09-26

我开始开发一个非常酷的Chrome扩展,但遇到了一个小问题。

我想允许我的用户共享链接。通过共享此链接,其他用户可以通过我的扩展获得一些信息。

问题是,当用户点击共享链接时,我想检查他的浏览器上是否安装了我的Chrome扩展。如果是这样的话——太好了,否则——我想重定向他下载我的扩展。

有什么办法吗?

一种可能性是让您的扩展在所有网站上运行一个内容脚本*,并为document上的点击事件添加一个监听器。它会检查event.target,以确保它是一个链接并有一个特定的前缀,如果有,它会调用其参数的preventDefault方法并执行它的任务。对于没有扩展的用户来说,该链接当然可以像其他链接一样工作。

*这会导致Chrome在潜在用户安装您的扩展时警告他们这一点;有关详细信息,请参阅权限警告。

让扩展在它加载的每个页面的DOM中添加一个不可见的元素,并用一个唯一的ID标记它。当用户单击该链接时,运行一些javascript来检查该元素——如果它不存在,那么你就知道扩展还没有安装。

我认为您应该能够设置/修改HTTP请求中的标头(从Chrome 17开始?)。向请求添加头意味着您可以检测到服务器端是否存在扩展。

这是相当不直观的。许多扩展/插件在历史上都修改过用户代理标头。