chrome.management.getAll不会返回Chrome Store的应用数据

时间:2014-02-26 06:30:49

标签: javascript google-chrome google-chrome-extension

我正在为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商店的记录。

我的代码有什么问题吗?或者商店是否隐藏?

谢谢。这是我的第一个问题,所以如果我的问题中有任何不恰当的词,请原谅我。

2 个答案:

答案 0 :(得分:1)

商店应用是component extension。这些扩展内置于Chrome中,未安装。正如您在the documentation中看到的那样,getAll()仅返回用户已安装的扩展程序。

您最好的选择是对全新配置文件中显示的扩展程序列表进行硬编码,这些扩展程序仅包含组件项(除非您在不受控制的计算机上)。随着时间的推移,该列表将与canonical list in the source code不同。

答案 1 :(得分:0)

chrome.management.get()和chrome.management.getAll()都会显示有关本地计算机上安装的应用/扩展程序/主题的信息,而不是来自Chrome网上应用店的信息。