将base64字符串发送到客户端时,Chrome Native Messaging引发错误

时间:2018-01-20 05:56:21

标签: python bash chrome-native-messaging

使用Chrome Native Messaging sample app作为模板,可以系统调用bash

os.system("<bash command>")

要求是从python脚本

返回base64字符串
os.system("<bash command that returns a base64 string>")

可以验证terminal的预期结果。

但是,将native-messaging-example-host处的代码调整为97-98行至

dataurl = os.system("<bash command that returns a base64 string>")
text = '{"text": "' + dataurl + '"}'

应用程序窗口关闭并

Failed to connect: Error when communicating with the native messaging host.

打印在应用程序的HTML页面上。

使用原始代码时

text = '{"text": "' + self.messageContent.get() + '"}' 

并发送base64字符串对应于bash命令输出到python主机的输出,base64被发送回客户端。测试的base64字符串的长度为43304,小于从主机发送的最大消息大小的1 MB。

为什么应用程序抛出错误而不是将base64字符串从python主机发送到Chromium客户端?

1 个答案:

答案 0 :(得分:0)

import supprocess as sub
ter = sub.Popen("<bash command that returns a base64 string>",
                          shell=True,stdout=sub.PIPE)
tread = cmd.communicate()[0].decode("u8")
text = '{"text": "' + tread + '"}'

试试这个^ _ ^