我需要将电话号码从网页传递到桌面拨号器。我有一个主机,它从background.js传递的页面中捕获电话号码:
var responseMessage = "";
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(request.phonenumber);
chrome.runtime.sendNativeMessage('com.avvd.microsipcallfield', {text: request.phonenumber},function(response) {
if (chrome.runtime.lastError) {
responseMessage = chrome.runtime.lastError.message
console.log(responseMessage);
} else {
responseMessage = response;
}} )
sendResponse(responseMessage);
});
并将其发送到主机:
{
"name": "com.avvd.microsipcallfield",
"description": "Call Field Microsip host",
"path": "C:\\Users\\All Users\\callFieldHost\\host.bat",
"type": "stdio",
"allowed_origins": [
"chrome-extension://lbhgehbjeemkjmooaeopmfljahdoombd/"
]
}
Host.bat
java -jar HostDecoder.jar %*
通常,在暂时没有主机的情况下,会有一个应用程序从JSON打开对象并将其发送到拨号程序。然而 我写了简单的记录器,这是一个输出:
1argument: chrome-extension://lbhgehbjeemkjmooaeopmfljahdoombd/
2argument: --parent-window=0
当我尝试发送号码时,我会进入控制台 与本地消息传递主机通信时出错。以及如何看到没有数字传递给主机侦听器。 有人可以建议我去修理吗?
答案 0 :(得分:0)
好的。还有另一个问题。我尝试读取传入的消息,但将稳定性设置为零。
private String read(InputStream in) throws IOException {
byte[] length = new byte[4];
in.read(length);
int size = getInt(length);
if (size == 0) {
throw new InterruptedIOException("Zero size message");
}
byte[] message = new byte[size];
in.read(b);
return new String(message, "UTF-8");
}
private int getInt(byte[] bytes) {
return (bytes[3]<<24) & 0xff000000|
(bytes[2]<<16) & 0x00ff0000|
(bytes[1]<< 8) & 0x0000ff00|
(bytes[0]<< 0) & 0x000000ff;
}
我用本机消息发送对象
{text: 4325345423}
在这种情况下我想念什么?
答案 1 :(得分:0)
我解决了问题。启动器中缺少@echo off
没问题。