如何关闭使用 python 制作的 chrome 本机应用程序?

How to close chrome native app made with python?

我制作了一个 chrome 扩展程序,可以与使用 python 制作的本机应用程序进行交互。关闭浏览器后,我的本机应用程序并未结束。我在某处读到 chrome 在结束前发送 -1 作为消息。以下是我以前从分机收到的代码 -

if sys.platform == "win32":
    import os, msvcrt
    msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
    msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)

def func():
    while True:
        if sys.stdin.read(1) == -1:
            logging.info("inside func got minus one")
            sys.exit()

p = multiprocessing.Process(target=func)
p.start()

您应该看看 https://developer.chrome.com/apps/nativeMessaging,其中包括 Python 中的示例。 您需要阅读消息的长度。它是一个 4 字节(32 位)整数。如果长度为0,那就是你退出的信号。

def func():
    while True:
        text_length_bytes = sys.stdin.read(4)
        if len(text_length_bytes) == 0:
            sys.exit(0)
        # still here, read text_lenth_bytes from stdin