【问题标题】:A custom extension is not listed in extensions page in some computers某些计算机的扩展页面中未列出自定义扩展
【发布时间】:2016-09-21 15:07:41
【问题描述】:

我开发了一个 Google 扩展程序,并为其创建了一个 Windows 安装程序包。该安装程序会按照https://developer.chrome.com/extensions/external_extensions#registry

中的说明写入相应的注册表项

所有这些都在某些计算机上运行良好。因此,在我运行安装程序包然后运行 ​​Google Chrome 之后,会出现一个小弹出窗口,告诉我启用扩展程序。我对该问题回答“是”,从那时起,扩展程序按预期工作。

但是,在某些使用相同版本的 Chrome (53.0.2785.116 m) 的计算机中,安装程序会将相应的条目写入注册表,但是当我运行 Chrome 时,没有任何反应,并且扩展程序未在 chrome 中列出:/ /extensions/ 页面。

在这种情况下,我可以连接到网上商店以手动安装扩展程序。但是,此扩展会启动应用程序,因为它实现了本机消息传递。当我手动安装扩展程序时它可以工作(本机消息传递主机应用程序已启动并正常工作)但是当我关闭并重新打开 Chrome 时,主机应用程序没有运行。要运行它,我需要手动禁用然后重新启用扩展。

发生了什么很奇怪。你能帮我解决这个问题吗?

【问题讨论】:

    标签: google-chrome google-chrome-extension chrome-web-store


    【解决方案1】:

    基于此thread,(这与您的问题有些相关),当您关闭 Chrome 时,它​​将触发 onDisconnect 事件,这就是应用程序未运行的原因。

    原生消息意味着只有 Chrome 可以在“连接”时启动主机实例。这是一个用词不当,因为connect() 的意思是“启动一个新副本并与之交谈”。

    没有办法“附加”到已经运行的进程。如果关闭主机,stdio 管道将被破坏Port 对象触发onDisconnect 事件。然后你需要从扩展重新启动主机才能与它对话。

    您可以查看此link。只需确保您的计算机上没有防病毒或防火墙程序导致问题。如果您可以在防火墙关闭时打开 Google Chrome,您可能需要在防病毒或防火墙设置中输入create an exception

    【讨论】:

      【解决方案2】:

      但是,在某些使用相同版本的 Chrome (53.0.2785.116 m) 的计算机中,安装程序会将相应的条目写入注册表,但是当我运行 Chrome 时,没有任何反应,并且扩展程序未在 chrome 中列出:/ /extensions/ 页面。

      您可能会遇到blacklisting,如果该扩展程序曾被安装,然后被卸载。

      如果用户卸载了扩展怎么办?

      如果用户通过 UI 卸载扩展,它将不再 在每次启动时安装或更新。换句话说,外部 扩展程序被列入黑名单。

      如何摆脱黑名单?

      如果用户卸载了您的扩展程序,您应该尊重这一点 决定。但是,如果您(开发人员)不小心卸载了 通过 UI 您的扩展程序,您可以通过以下方式删除黑名单标签 通过 UI 正常安装扩展,然后 卸载它。

      【讨论】:

        猜你喜欢
        • 2015-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-30
        • 1970-01-01
        相关资源
        最近更新 更多