Tag: chrome native messaging

Chrome原生邮件无法执行批处理文件

这是我的主人的清单: { “allowed_origins” : [ “chrome-extension://EXTENSION_ID/” ], “description” : “my.app.host”, “name” : “my.app.host”, “path” : “‪C:\\chromejar\\launch.bat”, “type” : “stdio” } 这是我的launch.bat文件的内容: setlocal enableextensions disabledelayedexpansion for %%a in (“%~dp0\ChromeConnector.jar”) do set “JARFILE=%%~fa” java -jar “%JARFILE%” pause 当我单独启动我的批处理文件时,它可以工作。 当我使用EXE文件(使用c#开发)从我的网站启动扩展程序时,它可以正常工作。 但是当我使用BAT文件从我的网站启动我的扩展时,它似乎不起作用。 我可以只测试它的BAT部分吗? (把BAT中的回音文本放到我的应用程序上查看结果?) 我尝试使用以下行start chrome –enable-logging –v=1 : start chrome –enable-logging –v=1但是在AppData\Local\Google\Chrome\User Data\chrome_debug.log似乎找不到特定的日志,我需要吗?添加一些东西来记录特定的错误? 我的Java代码目前很简单: public static void main(String[] […]

如何在java中实现chrome本机消息传递消息处理协议

我尝试在java中实现本机消息传递协议,但它不起作用。 我尝试了以下方式。 private String readMessage() { int length = getInt(getLength()); ByteArrayOutputStream bOut = new ByteArrayOutputStream(); byte[] b = new byte[4]; try { int total; for(int totalRead = 0 ; totalRead < length ; totalRead = totalRead + 4){ System.in.read(b); // make sure bOut.write(b); } } catch (IOException e) { e.printStackTrace(); } String bRes = null; […]

带有chrome扩展名的Java本机消息传递 – 无法正确写入长度

我目前正在编写一个与Chrome扩展程序通信的Java程序。 我需要实现Chrome本机消息传递协议才能进行通信。 Google Chrome文档说: …每条消息都使用JSON,UTF-8编码进行序列化,并以本机字节顺序开头的32位消息长度。 ( 来源 ) 我试图用Java实现这个,但是当我的消息有一定的长度时我会遇到问题,即使我的实现应该是正确的。 这是我当前的实现,基于早期的SO-answers和问题(例如这里 ): // read the message size from Chrome. This part works correctly. public static int getInt(char[] bytes) { return (bytes[3]<<24) & 0xff000000| (bytes[2]<<16) & 0x00ff0000| (bytes[1]<< 8) & 0x0000ff00| (bytes[0]<>8) & 0xFF), (char) ((length>>16) & 0xFF), (char) ((length>>24) & 0xFF)); } 似乎问题在于java实现chars的方式。 我期待正常的字符,就像在C中一样。在实践中,似乎Java有时会将这些字符转换为unicode-chars(至少,到目前为止,这是我的怀疑)。 这反映在以下输出(通过管道传输到xxd以显示实际字节)中,来自java程序的长度为2269: 0000000: […]

Native Messaging主机尝试发送长度为977472013字节的消息

我正在使用java jar使用Chrome Native Messaging发送和接收消息。 我启用了Chrome的日志记录,因此我可以阅读C:\Users\%UserName%\AppData\Local\Google\Chrome\User Data\chrome_debug.log文件 我实际上无法使用我的Java应用程序发送或接收消息,但我知道它已被使用。 这是我的主人的清单: { “allowed_origins” : [ “chrome-extension://EXTENSION-ID/” ], “description” : “my.app”, “name” : “my.app”, “path” : “launch.bat”, “type” : “stdio” } 以下是批处理文件launch.bat的内容: java -jar “%~dp0ChromeSEOConnector.jar” 这是我的Java代码: private String readMessage(InputStream in) throws IOException { byte[] b = new byte[4]; in.read(b); int size = getInt(b); b = new byte[size]; in.read(b); return […]