我有一个Windows应用程序,它通过Windows注册表安装Chrome扩展。我希望此应用程序根据用户在安装过程中输入的信息生成一些Chrome的一次性信息以供阅读。使Windows安装程序与不使用NPAPI的Chrome扩展程序进行通信
假设我没有在Chrome扩展中使用NPAPI,那么安装程序是否可以放置任何信息,以便扩展将会看到它?
编辑:我也希望在安装结束时启动chrome。
我有一个Windows应用程序,它通过Windows注册表安装Chrome扩展。我希望此应用程序根据用户在安装过程中输入的信息生成一些Chrome的一次性信息以供阅读。使Windows安装程序与不使用NPAPI的Chrome扩展程序进行通信
假设我没有在Chrome扩展中使用NPAPI,那么安装程序是否可以放置任何信息,以便扩展将会看到它?
编辑:我也希望在安装结束时启动chrome。
的另一种方式,你可以将信息传递给在Chrome之外的安装扩展到与您的扩展名的网页,你再打开浏览器也是一样,通过散列中的信息...如....
chrome.exe "chrome-extension://emcggffhhapbbkcodabdliakappfibcf/showHash.html#info"
这种方法的问题是你使用简单的注册表方法(我猜)而不是使用Policy方法来安装扩展。使用Policy方法,您可以强制进行安装,即使Chrome已经打开,也会发生这种情况(根据文档,在下次打开Chrome时简单的方法就会发生)。不利的一面是你必须自己做一个卸载程序,因为你不能从这个方法安装的Chrome中卸载一个扩展。我也不知道扩展程序安装之前会有多快/多长时间(无法在文档中找到它,也懒得试试它)),而且您需要让安装程序等待一会儿才能安装它。 。
http://www.chromium.org/developers/how-tos/adding-new-policies
http://dev.chromium.org/administrators/policy-list-3#ExtensionInstallForcelist
http://dev.chromium.org/administrators/policy-templates(这里说在注册表中添加它们)
另一种可能的方式可以是包在安装时的延伸和补充文件与信息,该扩展可以读取。这种方法的问题在于扩展ID会改变(可能不是你的问题?)或youll必须包括PEM在您的安装,你可能不想做....
chrome.exe --pack-extension="C:\simple-example" --no-message-box
许多人希望有一个事件触发扩展安装。
有一种解决方法,不是从外部向浏览器发送信息的优雅方式:启动Chrome请求打开一个URL。
我用它与本地的html文件。我的应用程序执行如下命令行:
"pathToChrome\Chrome.exe" "file://pathToHtmlFile/myFile.html?param1=value1¶m2=value2"
我通过的信息是页面参数。
美中不足的是,该网页的扩展中的众多方法之一阅读:
它不是本地页面。如果您的页面位于服务器上,它可以将参数保存在服务器中,值得。
它甚至不是你的网页。您可以在互联网上呼叫任何页面,但要确保它会触发您的内容脚本扩展,并且它会读取您的“自定义”参数。
而不是通过Windows注册表进行通信,可以创建从安装和扩展读一的WebSQL那里的数据。
您需要对此进行一些研究,但这是可能的。步骤应该是:
另一种方法是将文件添加到crx中,例如“installer_info.json”,并执行从扩展名到“installer_info.json”文件的AJAX请求。
没有正式的方法来做这件事,很少有研究,你会有办法。
在安装时打包扩展程序几乎是一个很好的解决方案,但不幸的是它会破坏自动更新,除非包含PEM。使用策略方法的伎俩也很聪明,但如果Chrome卸载失败,我的用户将会生气。话虽如此,我可以自己打包一个扩展作为安装过程的一部分,并让该扩展以某种方式与主扩展进行通信。不理想,但如果没有人能提出更好的建议,我会接受这个答案。 – Brian 2012-03-13 13:39:55
是的,我想到了第二个扩展的想法,但也想到它可能有点混乱。如果你这样做,那么主扩展只能访问你在安装程序中生成的第二个扩展中的页面。只需将其加载到iframe中,并使用您的信息向主扩展/父框架发布消息,就像我在这里所做的那样..... http://stackoverflow.com/questions/9033873/options-enabled-content- script-chrome-extension-without-background-page ...然后可能用管理清理... http://code.google.com/chrome/extensions/management.html#method-uninstall ..看起来过度了, ? ;) – PAEz 2012-03-13 16:09:59
由于规格更改,问题自行消失,但这可能是我将要使用的解决方案。 – Brian 2012-03-17 00:06:44