Я хотел бы проверить, включено ли другое расширение. Я понимаю, что API управления можно использовать для проверки, включено ли другое расширение ( Определить, установлено ли другое расширение Chrome ). Однако я пытаюсь запросить минимальное разрешение и поэтому хотел бы спросить, могу ли я использовать передачу сообщений.
Расширение A
let extPort = chrome.runtime.connect(ExtB);
extPort.postMessage({from: "ExtA", fn: "greeting"});
extPort.onMessage.addListener(function(message, sender) {
if ((message.from == "ExtB") && (message.fn == "greeting")) {
console.log("Ext B is enabled");
}
});
Расширение B
chrome.runtime.onConnectExternal.addListener(function(port) {
port.onMessage.addListener(function(message, sender) {
if ((message.from == "ExtA") && (message.fn == "greeting")) {
port.postMessage({from: "ExtB", fn: "greeting"});
}
});
});
Этот метод работает нормально, если расширение B включено, но отображается сообщение об ошибке, если расширение B НЕ включено. Есть ли способ обработать это сообщение об ошибке?
Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.