是否可以将多个Chrome扩展程序打包在一起
Is it possible to package multiple Chrome extensions together?
Google是否允许您将多个单独的扩展打包在一起,以便用户只需单击一下即可安装所有扩展程序?
我无法找到有关此事的任何内容,因此我认为目前不可能。
我问是因为我正在创建有用的上下文菜单选项,这些选项自然属于几个不同的类别,我想避免如果我将所有内容放在一个扩展中会发生的强制嵌套。
如果我制作 3 个单独的扩展,那么我可以将它们全部设置为顶级选项,从而创建更方便的用户体验。但是,如果可能的话,我想避免让用户启动 3 个单独的下载。
要回答您的第一个问题:不,Google不允许您将多个扩展打包在一起。每个扩展程序都有自己的 Chrome 网上应用店页面和 ID。谷歌让普通用户安装它的唯一方法是从商店下载它。
另一方面,你是说:
我正在创建有用的上下文菜单选项,这些选项自然属于几个不同的类别[..]。如果我制作 3 个单独的扩展,那么我可以将它们全部设置为顶级选项,从而创建更方便的用户体验。
让我们澄清一下这件事。我假设您已经知道Chrome扩展程序应该只有一个目的,并且您显然不想违背这种逻辑。顺便说一下,请考虑以下几点:
-
为什么要编写单独的扩展?
- 每个扩展的不同行为彼此特别不同。例如,其中一个存储浏览数据,另一个翻译页面,另一个仅在某些页面上提供页面操作以操作它们。
- 扩展共享相同的公共超级逻辑,但在不同的子逻辑中区分。例如,一个允许用户在某些页面中注入代码的扩展,另一个允许用户注入一些媒体或 CSS 样式的扩展。
- 这些扩展都与同一类别的网站/事物相关,但它们中的每一个都为用户提供了完全不同的服务。例如,一些扩展程序都在购物网站上工作,但是:其中一个将价格与其他网站进行比较,另一个允许您存储来自不同网站的文章以查看其浏览器操作中的总数,等等。
-
为什么要为多种目的编写单个扩展?
- 每个扩展的行为彼此相似。例如,其中一个让您在某个社交网络上共享链接,另一个让您共享照片。
- 创建多个扩展不会消除使用外部消息传递在它们之间进行消息传递的需要。
- 用户可以将扩展配置为具有完全相同的行为或完全不同的行为。您不知道哪个用户将分开,哪个用户将连接它们。
- 可以从用户中选择扩展的行为(在设置页面或安装中)。
这些是我想到的一些基本点,我知道这显然主要是基于意见的,所以你可能不会想到同样的事情,但这只是为了帮助你弄清楚如何继续你的扩展。
如果您决定使用不同的扩展,您可以对每个扩展进行编程以建议用户下载其他扩展(通过检查它们是否已安装),或者可能(但我不以任何方式建议您这样做)强制用户完全安装它们(也检查缺少的)。
下面是如何使用chrome.management.get()
检查扩展安装的示例:
var ext2installed = false;
chrome.management.get("<extension2-id>", function(info) {
if (info) ext2installed = true;
});
显然,如果您正在使用三个扩展,这可能会变得有点重复,但没什么荒谬的,您只需为每个扩展添加代码以检查是否安装了其他两个扩展。
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- Google Chrome扩展程序可以检测所有脚本何时加载完成吗
- jQuery$.ajax扩展程序XDomainRequest
- 扩展引导程序的typeahead以便获取对象而不是字符串
- 通过chrome后台扩展或后台应用程序访问用户麦克风
- 如何使用ngModel将自定义控件的提供程序扩展器分离到Angular 2中的单独文件中
- 为什么不'我的扩展程序不会出现在Chrome网上商店的搜索结果中
- Chrome扩展程序将所有链接替换为略微修改的版本
- 在 Chrome 扩展程序中创建自定义事件的最惯用方式
- Chrome APP/扩展程序从网址下载文件
- 列出谷歌浏览器中安装的所有扩展程序
- 使用多功能框在 chrome 扩展程序中包含内联自动填充功能的任何方法
- 浏览器扩展程序来跟踪我的谷歌活动
- 什么是最好的javascript数组库/实用程序/扩展
- 在ios 8应用程序扩展javascript文件中使用jQuery
- jquery复选框树是否支持使用类选择器而不是Id进行程序扩展
- 将Node.js应用程序扩展到1000个同时连接中的10个
- 如何使用OAuth与Facebook在Safari应用程序扩展
- 在js中用程序扩展一个可折叠的集合
- 如何在IOS操作应用程序扩展中调试JavaScript