我正在为Chrome 33编写新的标签页替代品。
当我使用chrome.management.getAll()
获取应用列表时,我发现了一件奇怪的事情。
这是我的代码:
document.addEventListener('DOMContentLoaded', function () {
...
chrome.management.getAll(getAllApps);
...});
function getAllApps(data) {
...
console.log("Installed App Count:" + data.length);
for (var i = data.length - 1; i >= 0; i--) {
console.log("Found App: " + data[i].name + " type:" + data[i].type);
if (data[i].type == 'theme' ||
data[i].type == 'extension' ) {
continue;
};
...
}
}
输出永远不会列出Chrome商店。
但如果我使用chrome.management.get()
,我可以通过其ID获取Chrome商店的记录。
我的代码有什么问题吗?或者商店是否隐藏?
谢谢。这是我的第一个问题,所以如果我的问题中有任何不恰当的词,请原谅我。
答案 0 :(得分:1)
商店应用是component extension。这些扩展内置于Chrome中,未安装。正如您在the documentation中看到的那样,getAll()
仅返回用户已安装的扩展程序。
您最好的选择是对全新配置文件中显示的扩展程序列表进行硬编码,这些扩展程序仅包含组件项(除非您在不受控制的计算机上)。随着时间的推移,该列表将与canonical list in the source code不同。
答案 1 :(得分:0)
chrome.management.get()和chrome.management.getAll()都会显示有关本地计算机上安装的应用/扩展程序/主题的信息,而不是来自Chrome网上应用店的信息。