如何知道是否从商店下载了Chrome扩展名



i开发了一个与firefox/edge/opera兼容的铬扩展。

扩展程序依赖于通过网络访问的REST API。在Web开发期间,我更喜欢指向开发端点,在该端点不会影响生产租户,而仅影响开发实例和数据库。

我的问题很简单,我想与此伪代码相似:

if (extension.downloaded_from_store == true)
    endpoint = "https://api-dev.example.com"
else
    // The extension has been installed from a local directory
    endpoint = "https://api-prod.example.com"

您是否知道我怎么能做这样的事情(最好是从背景。JS页面)?

如果解决方案可以与所有浏览器兼容,那将是完美的!

商店上的大多数Google Chrome扩展名都具有永久扩展ID。如果您打包了扩展程序,以便在每个更新中使用相同的扩展ID,则可以简单地简单地进行硬码ID,然后首先在该IF中检查。

我建议在此处阅读有关包装铬扩展的更多信息。

特别是此部分。

我在管理模块中的Chrome文档中找到了答案

链接:https://developer.chrome.com/extensions/management#type-extensioninstalltype

ExtensionInstallType

如何安装扩展名。之一:

  • 管理员:由于行政策略,安装了扩展名
  • 开发:将扩展程序装载在开发人员模式下
  • 正常:扩展名是通过.crx文件正常安装的
  • sideload:扩展名是由机器上的其他软件安装的
  • 其他:扩展程序是通过其他方式安装的枚举" admin","开发","正常"," sideload"或"其他"

这使我可以做以下操作:

chrome.management.get(chrome.runtime.id, function(app_info){
    if (app_info.installType == "development"){
        endpoint = "https://api-dev.example.com";
    }
    else {
        endpoint = "https://api-prod.example.com";
    }
});

相关内容

  • 没有找到相关文章

最新更新