chrome扩展本机消息传递::无法连接:与本机消息传递主机通信时出错

问题描述

我是chrome扩展本机消息传递的新手。我在以下位置阅读了该文档: https://developer.chrome.com/extensions/nativeMessaging

我要分享的示例仅取自{https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/api/nativeMessaging

,除了代替python host之外,我有一个简单的java程序。在运行扩展程序并单击“连接”时,出现错误

连接失败:与本机消息传递主机通信时出错。

我的猜测是这是2个错误的组合:

连接失败

通信时出错

作为一个实验,我没有从Java主机发送任何消息,希望它不会在“通信错误时抛出错误”,但是仍然得到相同的错误消息。下面是代码

Chrome文件

manifest.json:

{
  // Extension ID: knldjmfmopnpolahpmmgbagdohdnhkik
  "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcBHwzDvyBQ6bDppkIs9MP4ksKqCMyXQ/A52JivHZKh4YO/9vJsT3oaYhSpDCE9RPocOEQvwsHsFReW2nUEc6OLLyoCFFxIb7KkLGsmfakkut/fFdNJYh0xOTbSN8YvLWcqph09XAY2Y/f0AL7vfO1cuCqtkMt8hFrBGWxDdf9CQIDAQAB","name": "Native Messaging Example","version": "1.0","manifest_version": 2,"description": "Send a message to a native application.","browser_action": {
    "default_title": "Test Extension",//"default_icon": {
    //    "19": "img/icon19.png",//    "38": "img/icon38.png"
    //},"default_popup": "main.html"
},"type": "stdio","icons": {
    "128": "icon-128.png"
  },"permissions": [
    "nativeMessaging"
  ]
}

完整的扩展代码可以在以下位置找到: https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/api/nativeMessaging/app/main.js

本地文件

com.google.chrome.example.echo-win.json:

{
  "name": "com.google.chrome.example.echo","description": "Chrome Native Messaging API Example Host","path": "native-messaging-example-host.bat","allowed_origins": [
    "chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/"
  ]
}

install_host.bat

REG ADD "HKCU\Software\Google\Chrome\NativeMessagingHosts\com.google.chrome.example.echo" /ve /t REG_SZ /d "%~dp0com.google.chrome.example.echo-win.json" /f

native-messaging-example-host.bat:

cd C:\Users\jagrati.agrawal\Desktop\serviceNow\src-master-chrome-common-extensions-docs-examples-api-nativeMessaging\host && java HelloWorld

HelloWorld.java

import java.nio.ByteBuffer;
import java.nio.ByteOrder;

public class HelloWorld {
public static void main(String args[]) throws Exception{
    String message = "{\"m\":\"hi\"}";
 
System.out.println(ByteBuffer.allocate(4).order(ByteOrder.nativeOrder()).putInt(message.length()).array());
System.out.write(message.getBytes("UTF-8"));
System.out.flush();
 
}
}

请帮助。另外,如果我理解正确,当我更改HelloWorld.java并将其编译为HelloWorld时,不需要重新安装扩展程序。

chrome extension error

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...