【发布时间】:2012-08-03 07:14:24
【问题描述】:
我一直在为我的公司开发和维护一个 Chrome 扩展程序,每个客户都将在代码中分配一个唯一的 ID。我们一直在使用该 ID 来确定许可证状态并登录我们的服务(付费延期,每月订阅费)。
到目前为止,我们自己托管了扩展文件,并为每个客户扩展提供了唯一的更新 URL。这很好很简单;访问我们的网站,点击安装,您就完成了。然而,在最新的 Chrome 版本中,该安装过程已被 Google 阻止,因为他们现在要求用户通过将 CRX 文件拖放到 chrome://chrome/extensions/ 选项卡中来安装扩展程序。当然,除非您的扩展程序可以通过 Chrome 网上应用店获得 - 这导致我遇到了问题:
- 我们不希望拖放式 CRX 安装 - 需要网上应用店。
- 我们不希望 Web Store 上有多个版本的扩展程序(每个客户一个),因为每次更新扩展程序时,这都是一个维护地狱。
- 我们不想使用网上应用店许可,因为:
- 需要 OpenID 登录。
- 我们向有许多学生的学校出售扩展程序,由学校支付账单,而不是学生。
- 我们不想将我们的付款方式锁定在一个浏览器上,即我们希望能够通过我们的或服务器维持许可和付款。
- 我们不希望用户输入许可证密钥,因为这对于数千名学生必须输入密钥的风险太大 - 而且它需要某种存储(cookies/localStorage),最终会被清除,需要要重新输入的许可证密钥。
我不能 100% 确定我的陈述是否完全正确,如果我遗漏了什么,请随时赐教。
如果是,问题是我们是否可以通过网上应用店为每个客户定制扩展程序(使用唯一 ID),而无需为每个 ID 发布一个扩展程序?
作为附带问题,任何可能通过其他方法解决问题的答案也将被接受。
【问题讨论】:
-
关于 localStorage:你的应用程序的 localStorage 不会被清除,除非你的应用程序这样做(在其中你会知道发生了什么并可以适当地处理它),或者你的用户从 JS 执行它控制台(在这种情况下,他会知道它坏了,因为他在 JS 控制台上乱搞)。应用程序 localStorage 永远不会被浏览器任意清除——even when the user wipes all localStorage(请注意,链接的错误标记为“WontFix”)。但是,成千上万的学生输入许可证密钥是一个单独的问题。
标签: google-chrome-extension chrome-web-store