【发布时间】:2020-06-01 05:22:09
【问题描述】:
我正在使用来自 firefox 的 Web API 制作本机消息传递应用程序。该扩展程序应该调用一个解析标准输入的应用程序,然后根据它解析的一些数据调用我的另一个 rust 应用程序,但是没有明显的原因,rust 应用程序不接受来自 firefox 的输入(当我这样做时它可以工作手动)。 这是扩展的代码:
/*
On a click on the browser action, send the app a message.
*/
browser.browserAction.onClicked.addListener(() => {
console.log("Sending: ping");
var sending = browser.runtime.sendNativeMessage(
"themefox_manager",
"ping");
sending.then(onResponse, onError);
});
function onResponse(response) {
console.log("Received " + response);
}
function onError(error) {
console.log(`Error: ${error}`);
}
这是 rust 应用程序的代码:
use std::fs;
use std::io;
use std::io::prelude::*;
fn main() {
let stdin = io::stdin();
for line in stdin.lock().lines() {
let mut file = fs::File::create("/home/user/filename.txt").unwrap();
//
if line.unwrap() == "ping" {
file.write_all(b"TEST").expect("Error");
}
}
}
奇怪的是,当我关闭 firefox 时,我的主目录中的文本文件首先出现,而不是在应用程序启动时出现。而且它也没有文本 TEST。
感谢您的帮助!
干杯
【问题讨论】: