某些计算机

时间:2016-09-21 15:07:42

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

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

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

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

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

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

发生什么事很奇怪。你可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

根据此thread(与您的问题有些相关),当您关闭Chrome时,它会触发holder.textView.setOnClickListener(new OnClickListener() { public void onClick(View v) { int adapterPos = holder.getAdapterPosition(); if(adapterPos != RecyclerView.NO_POSITION) { Toast.makeText(context, SubjectValues[adapterPos], Toast.LENGTH_SHORT).show(); } } }); 事件,这就是应用程序未运行的原因。

  

原生消息传递意味着只有Chrome可以在连接"时启动主机实例。这是一个用词不当,因为onDisconnect表示"发布新副本并与之交谈"。

     

没有办法"附加"到一个已经在运行的过程。如果关闭主机,stdio管道将被破坏,connect()对象将触发Port事件。然后,您需要从扩展程序重新启动主机才能与其进行通信。

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

答案 1 :(得分:0)

  

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

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

  

如果用户卸载了扩展程序,该怎么办?

     

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

     

如何离开黑名单?

     

如果用户卸载了您的扩展程序,您应该尊重这一点   决策。但是,如果您(开发人员)意外卸载   通过用户界面进行扩展,您可以删除黑名单标签   通过UI正常安装扩展,然后   卸载它。