繁体   English   中英

应用程序和Web视图中的注入脚本之间的通信

[英]Communication between App and injected script in a webview

我的后台脚本使用webview.executescript(injected.js)方法将脚本注入到应用程序窗口内的webview中。 从注入的脚本中,我可以简单地使用chrome.runtime.sendMessage将消息发送到应用程序。 我也想从后台发送消息。 我可以使用webview.ContentWindow.postMessage但是如何在webview一侧处理消息? 当Webview收到消息时,我需要执行一些操作。 是否可以直接将消息发送到注入的脚本?

恐怕在这种情况下无法使用解决内容脚本chrome.tabs.sendMessage的传统方法。

您有2种方法:

  1. 继续使用Chrome消息传递,您可以在内容脚本和背景之间建立一个Port对象 这将允许双向通信,但是内容脚本必须启动它。 请注意,打开端口会阻止后台作为空闲状态卸载。

  2. 您可以将更多脚本注入到webview中,例如

     function airQuotesMessageWebview(message) { webview.executeScript({code: "notReallyMessaging("+JSON.stringify(message)+");"}); } 

    这将触发内容脚本中的某些操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM