如何知道是否从商店下载了 chrome 扩展?
How to know whether a chrome extension is downloaded from store?
我开发了一个 chrome 扩展,它也与 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"
你知道我是怎么做到的吗(最好是从 background.js 页面)?
如果方案能兼容所有浏览器就完美了!
商店中的大多数 google chrome 扩展都有一个永久扩展 ID。如果你打包你的扩展,以便它在每次更新时使用相同的扩展 ID,那么你可以简单地硬编码该 ID 并首先在其中检查它 if.
我建议阅读更多有关 packaging chrome extensions here.
的内容
具体来说this part.
我在管理模块的chrome文档中找到了答案:
Link: https://developer.chrome.com/extensions/management#type-ExtensionInstallType
ExtensionInstallType
扩展程序是如何安装的。其中之一:
- admin:根据管理策略安装了扩展程序
- 开发:扩展已在开发者模式下解压加载
- 正常:扩展通过 .crx 文件正常安装
- sideload: 扩展被机器上的其他软件安装
- other: 扩展是通过其他方式安装的
枚举
"admin"、"development"、"normal"、"sideload" 或 "other"
这允许我执行以下操作:
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";
}
});
我开发了一个 chrome 扩展,它也与 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"
你知道我是怎么做到的吗(最好是从 background.js 页面)?
如果方案能兼容所有浏览器就完美了!
商店中的大多数 google chrome 扩展都有一个永久扩展 ID。如果你打包你的扩展,以便它在每次更新时使用相同的扩展 ID,那么你可以简单地硬编码该 ID 并首先在其中检查它 if.
我建议阅读更多有关 packaging chrome extensions here.
的内容具体来说this part.
我在管理模块的chrome文档中找到了答案:
Link: https://developer.chrome.com/extensions/management#type-ExtensionInstallType
ExtensionInstallType
扩展程序是如何安装的。其中之一:
- admin:根据管理策略安装了扩展程序
- 开发:扩展已在开发者模式下解压加载
- 正常:扩展通过 .crx 文件正常安装
- sideload: 扩展被机器上的其他软件安装
- other: 扩展是通过其他方式安装的 枚举 "admin"、"development"、"normal"、"sideload" 或 "other"
这允许我执行以下操作:
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";
}
});