是否可以将多个Chrome扩展程序打包在一起?

时间:2015-01-12 16:26:14

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

Google是否允许您将多个单独的扩展程序打包在一起,以便用户只需单击一下即可安装所有扩展程序?

我还没有找到关于此事的任何内容,所以我认为现在不可能。

我问,因为我正在创建有用的上下文菜单选项,这些选项自然属于几个不同的类别,我想避免强制嵌套,如果我将所有内容放在一个扩展中。

如果我制作3个单独的扩展程序,那么我可以将它们全部作为顶级选项,从而创建更方便的用户体验。但是,我希望尽可能避免让用户启动3次单独下载。

1 个答案:

答案 0 :(得分:1)

要回答您的第一个问题:不,Google不允许您将多个扩展程序打包在一起。每个扩展程序都有自己的Chrome网上应用店页面和ID。 Google允许普通用户安装的唯一方法是从商店下载。

另一方面,你说:

  

我正在创建有用的上下文菜单选项,这些选项自然属于几个不同的类别[..]。如果我制作3个单独的扩展程序,那么我可以将它们全部设置为顶级选项,从而创建更方便的用户体验。

让我们澄清一下这件事。我假设您已经知道Chrome扩展程序应该只有一个目的,而您显然不想违背此逻辑。顺便提一下,请考虑以下事项:

  • 为什么要编写单独的扩展名?

    • 每个扩展的不同行为彼此特别不同。例如,其中一个存储浏览数据,另一个存储翻译页面,另一个仅在某些页面上提供页面操作来操作它们。
    • 扩展共享相同的公共超级逻辑,但区分不同的子逻辑。例如,允许用户在某些页面中注入代码的扩展,以及允许注入某些媒体或CSS样式的扩展。
    • 扩展程序都与相同类别的网站/内容相关,但每个扩展程序都为用户提供了完全不同的服务。例如,一些扩展程序都在购物网站上工作,但是:其中一个扩展程序会检查其他网站的价格以进行比较,另一个扩展程序允许您存储来自不同网站的文章以查看其中的总计浏览器操作等。

  • 为什么要为多种目的编写单个扩展名?

    • 每个扩展的行为彼此相似。例如,其中一个让你在某个社交网络上分享链接,另一个让你分享照片。
    • 创建多个扩展程序不会消除使用外部消息传递消息的需要。
    • 扩展可以由用户配置为具有完全相同的行为或完全不同的行为。您不知道哪个用户要分开,哪个用户要连接它们。
    • 可以从用户(在设置页面或安装中)选择扩展的行为。

这些是我想到的一些基本观点,我知道这显然主要是基于意见的,所以你可能不会想到同样的事情,但这只是为了帮助你弄清楚如何继续你的扩展。


如果您决定使用不同的扩展程序,您可以对其中每个扩展程序进行编程,以建议用户下载其他扩展程序(通过检查它们是否已安装),或者也许(但我不建议你这样做)强迫用户完全安装它们(也检查丢失的那些)。

以下示例说明如何使用chrome.management.get()检查您的扩展程序是否已安装:

var ext2installed = false;

chrome.management.get("<extension2-id>", function(info) {
    if (info) ext2installed = true;
});

显然,如果您正在使用三个扩展程序,这可能会有点重复,但没有什么特别的,您只需要为每个扩展程序添加代码以检查是否已安装其他两个扩展程序< /强>