1 写法网上已有实例,由于我是用c#写的,输出消息时,费了些功夫
static void Main(string[] args)
{
// {"text":"48BA4E4DA17F"} {"text":"48-BA-4E-4D-A1-7F"}
string msg = "{\"text\":\"" + GetMacAddressByRegister() + "\"}";
log.WriteFile("msg --> " + msg);
// Console.Write(msg.Length + msg);
//msg = "{\"text\":\"48-BA-4E-4D-A1-7F,1C-4D-70-60-CB-32,00-50-56-C0-00-01,00-50-56-C0-00-08,1C-4D-70-60-CB-2E,1E-4D-70-60-CB-2E,1C-4D-70-60-CB-2F\"}";
var bytes = System.Text.Encoding.UTF8.GetBytes(msg);
var stdout = Console.OpenStandardOutput();
stdout.WriteByte((byte)((bytes.Length >> 0) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 8) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 16) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 24) & 0xFF));
stdout.Write(bytes, 0, bytes.Length);
stdout.Flush();
//Console.ReadKey();
}
要点就在与输出的消息格式为
4) 本地消息的协议约束 客户端的本地应用注册为Chrome浏览器扩展的“本地消息主机”之后,Chrome浏览器会在独立的进程中启动该本地应用,并通过标准输入/输出流(stdin/stdout)进行消息通信。 Chrome浏览器扩展与客户端的本地应用之间的双向通信采用消息机制,该消息以JSON格式,UTF-8编码,带32位(操作系统本地字节序)的消息长度作为前缀。从本地应用发送到Chrome浏览器扩展的消息,最大尺寸是1M字节。从Chrome浏览器扩展发送到本地应用的消息,最大尺寸是4G字节。 |
参考下边3篇文章
1 https://www.cnblogs.com/champagne/p/4861209.html
chrome与本地应用消息通信的规范解释
2 https://blog.csdn.net/zhangjs712/article/details/50913114
c++ 实例
3 http://www.it1352.com/384226.html
c# 实例--输出消息的例子