我一直在为我的公司开发和维护一个Chrome扩展程序,其中每位客户都会在代码中分配一个唯一的ID。我们一直在使用该ID来确定许可证状态并登录我们的服务(按月收费收费的延期付款)。Chrome网上应用店的扩展程序的用户特定版本
到目前为止,我们自己托管了扩展文件,并为每个客户扩展都有独特的更新URL。这很好,很简单;去我们的网站,点击安装,你就完成了。然而,在最新的Chrome版本中,Google的这一安装过程受到阻碍,因为他们现在要求用户通过将CRX文件拖放到chrome:// chrome/extensions/tab来安装扩展。当然,除非你的扩展,可通过Chrome网上应用店 - 这使我的问题:
- 我们不想拖放CRX安装 - 需要网上商店。
- 我们不希望Web Store上的扩展的多个版本(每个客户一个),因为每次我们更新扩展时,这都是一个维护地狱。
- 我们不想使用网上应用店授权,因为:
- 它需要OpenID登录。
- 我们向许多学生出售学校支付学费的扩展 - 而不是学生。
- 我们不希望将我们的付款方式锁定到一个浏览器,即我们希望能够通过我们或服务器维持许可和付款。
- 我们不希望用户输入许可证密钥,因为数千名学生不得不输入密钥的风险太大 - 还需要某种存储器(cookies/localStorage)被清除,需要再次输入许可证密钥。
我不是100%肯定,我的发言是完全正确的,所以不吝赐教我,如果我错过了什么。
如果是这样,问题是我们是否可以通过Web商店(使用唯一ID)为每个客户定制扩展程序,而无需为每个ID发布一个扩展?
作为一个侧面问题,任何可能解决与另一种方法的问题的答案也将被接受。
关于localStorage:您的应用程序的localStorage不会被清除,除非您的应用程序执行此操作(您将知道发生了什么并且可以正确处理它),或者您的用户从JS控制台执行它(在这种情况下他会知道它打破了,因为他在JS控制台上瞎忙)。应用程序localStorage永远不会被浏览器任意清除 - 即使用户擦除了所有localStorage(https://code.google.com/p/chromium/issues/detail?id=36550)(请注意链接的bug被标记为“WontFix”)。然而,数千名学生输入许可证密钥是另一个问题。 – apsillers 2012-08-06 13:35:55