我的后台脚本使用webview.executescript(injected.js)
方法在应用程序窗口内的webview中注入脚本。从注入的脚本中,我只需使用chrome.runtime.sendMessage
即可向应用发送消息。
我也想从后台发送消息。我可以使用webview.ContentWindow.postMessage
,但如何处理webview的消息?我需要在webview收到消息时执行一些操作。是否可以直接向注入的脚本发送消息?
答案 0 :(得分:1)
我担心在这种情况下,传统的内容脚本chrome.tabs.sendMessage
的处理方式不可用。
您有两种方法:
保持Chrome消息传递,您可以在内容脚本和后台之间establish a Port object。这将允许双向通信,但内容脚本必须启动它。请注意,打开一个端口会使后台停止卸载为空闲状态。
您可以将更多脚本注入网页视图,例如
function airQuotesMessageWebview(message) {
webview.executeScript({code: "notReallyMessaging("+JSON.stringify(message)+");"});
}
将在内容脚本中触发一些操作。