自定义Chrome扩展的自动更新功能

时间:2012-05-10 17:09:36

标签: google-chrome google-chrome-extension auto-update self-hosting

所以我在Chrome扩展程序中工作,不会在google网上商店托管,因此我需要添加自动更新功能,但是我需要它更有动态,我会尝试说明我想通过一个小场景来完成什么,所以它似乎没有意义。

方案

我需要有一个扩展版,每个版本都有不同的版本,即每个版本都有免费版和付费版(功能丰富版),每当新版本发布时,扩展名将根据其版本进行更新

换句话说,服务器应该能够检测用户的版本并根据它提供crx文件“即动态”。

我尝试/想到的是

1.我试图用扩展版设置一个cookie,所以当发生自动更新时,服务器可以检查它并生成xml文件,遗憾的是我发现cookie没有在自动更新头中发送由chrome发送。

2.我可以在Chrome启动时使扩展与服务进行通信,因此它会发送它的版本,因此服务器会将其与ip一起存储,当发生自动更新时,服务器将检查请求ip并将其与版本匹配以提供xml,我认为这可行,但它有点蹩脚的方法。

3.我可以使用本机应用程序根据版本修改清单文件以指向不同的xml文件,我想这也可以,但我不赞成使用本机应用程序。

4.我试图找到一种方法来修改get-request参数(即添加自定义参数,如版本),但似乎没有办法这样做。

5.我可以将不同的版本分开为不同的版本(即免费版本将与付费版本不同),但我有兴趣将其全部集成在一起,因此用户可以升级/降级其订阅无需安装/删除已有的扩展程序。

我想就是这样,我希望有人能更好地了解我如何才能完成我想做的事。

PS 我知道标题有点模糊,但我找不到更好的标题,所以如果你想出更好的标题,请告诉我。

1 个答案:

答案 0 :(得分:0)

为什么不制作免费版1.*和付费版2.*?然后通过一个简单的PHP页面动态生成更新页面,该页面获取应用程序ID和版本(请参阅autoupdate docs)。

"update":"http://www.mysite.com/update_app.php放入您的清单中。在PHP脚本中,阅读$_GET['version'],并提供XML更新文档以匹配主要版本号(1.*免费版本,2.*付费版本)。基本上,在服务器上保留两个XML更新文件(以及两个CRX文件)并让脚本决定使用哪一个。

当然,它不一定是PHP;任何服务器端语言都可以。