とを使用chrome.runtime.sendMessage
しchrome.runtime.onMessage
て、webview から受信したメッセージを他のウィンドウにブロードキャストできます。
したがって、webview を持つウィンドウは、他のウィンドウにメッセージを送受信するためのプロキシとして機能します。次のようなコードになります。
window.addEventListener('message', (event) => {
event.preventDefault();
const message = event.data;
console.log(`viewer window is broadcasting message from webview: ${JSON.stringify(event.data)}`);
chrome.runtime.sendMessage(event.data);
});
const webview = document.querySelector('webview');
webview.addEventListener('loadstop', () => {
webview.contentWindow.postMessage({from: 'app', cmd: 'init'}, webview.src);
});
function handleMessage(message) {
if (message.from === 'anotherwindow') {
console.log('webview window received message from another window, sending it to webview');
webview.contentWindow.postMessage(message, webview.src);
}
}
chrome.runtime.onMessage.addListener(handleMessage);