如何确定 connectNative 是失败还是成功
How do I find out if connectNative failed or succeeded
我已成功将我的扩展程序连接到我们的本机主机:
var pulse_tracker_port = chrome.runtime.connectNative('com.cloudfactory.pulsetracker');
但是如何知道连接是否成功呢?无论连接是否成功,'pulse_tracker_report.name' 的值始终为空字符串。
我还尝试添加侦听器以查明连接是否成功,但 none 这些回调被调用:
chrome.runtime.onConnect.addListener(function(port)
{
console.log('Connected to "Pulse Tracker" @port: ' + port.name);
});
chrome.runtime.onConnectExternal.addListener(function(port)
{
console.log('Connected to "Pulse Tracker" @port: ' + port.name);
});
顺便说一句,这也不会被调用:
pulse_tracker_port.onConnect.addListener(function(port)
{
console.log('Connected to "Pulse Tracker" @port: ' + port.name);
});
这是我尝试这样做时得到的结果:
main.js:26 Uncaught TypeError: Cannot read property 'addListener' of undefined
onConnectExternal 适用于扩展之间的交叉扩展消息传递,但看起来不适用于本机消息托管。任何帮助,将不胜感激。谢谢
chrome.runtime.onConnect
和 chrome.runtime.onConnectExternal
在这里不相关,因为它们会通知您传入连接,而不是传出连接的状态。
pulse_tracker_port
是 Port
object 没有 onConnect
属性.
你需要做的是立即为端口对象的onDisconnect
事件分配一个监听器。如果连接出现问题,将调用侦听器并设置 chrome.runtime.lastError
:
var pulse_tracker_port = chrome.runtime.connectNative('com.cloudfactory.pulsetracker');
pulse_tracker_port.onDisconnect.addListener(function() {
if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError);
}
});
否则,只需尝试使用它,使用 .postMessage()
和 .onMessage
事件。对于postMessage
,端口断开会报错
我已成功将我的扩展程序连接到我们的本机主机:
var pulse_tracker_port = chrome.runtime.connectNative('com.cloudfactory.pulsetracker');
但是如何知道连接是否成功呢?无论连接是否成功,'pulse_tracker_report.name' 的值始终为空字符串。
我还尝试添加侦听器以查明连接是否成功,但 none 这些回调被调用:
chrome.runtime.onConnect.addListener(function(port)
{
console.log('Connected to "Pulse Tracker" @port: ' + port.name);
});
chrome.runtime.onConnectExternal.addListener(function(port)
{
console.log('Connected to "Pulse Tracker" @port: ' + port.name);
});
顺便说一句,这也不会被调用:
pulse_tracker_port.onConnect.addListener(function(port)
{
console.log('Connected to "Pulse Tracker" @port: ' + port.name);
});
这是我尝试这样做时得到的结果:
main.js:26 Uncaught TypeError: Cannot read property 'addListener' of undefined
onConnectExternal 适用于扩展之间的交叉扩展消息传递,但看起来不适用于本机消息托管。任何帮助,将不胜感激。谢谢
chrome.runtime.onConnect
和 chrome.runtime.onConnectExternal
在这里不相关,因为它们会通知您传入连接,而不是传出连接的状态。
pulse_tracker_port
是 Port
object 没有 onConnect
属性.
你需要做的是立即为端口对象的onDisconnect
事件分配一个监听器。如果连接出现问题,将调用侦听器并设置 chrome.runtime.lastError
:
var pulse_tracker_port = chrome.runtime.connectNative('com.cloudfactory.pulsetracker');
pulse_tracker_port.onDisconnect.addListener(function() {
if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError);
}
});
否则,只需尝试使用它,使用 .postMessage()
和 .onMessage
事件。对于postMessage
,端口断开会报错