Chrome Extension 通信常用 API 说明

本文详细介绍了Chrome扩展中的通信API,包括chrome.runtime.sendMessage、chrome.tabs.sendMessage等,讲解了如何进行扩展内部及跨扩展通信,同时提到了Chrome存储API,如storage.sync和storage.local,用于扩展的数据管理和同步。
摘要由CSDN通过智能技术生成

通信常用 API 说明

  1. chrome.runtime.sendMessage
/**
 * 向您的扩展程序/应用或另一个扩展程序/应用中的其他事件监听者发送单个消息。
 * @param {string} extensionId 发送消息的扩展程序或应用的标识符,扩展的 id,省略就是当前扩展内部通信
 * @param {any} message
 * @param {object} options
 * @param {function} callback (response: any) => {} 响应
 */
chrome.runtime.sendMessage(string extensionId, any message, object options, function responseCallback)
  1. chrome.runtime.onMessage

如果您在同一个文档中有一个以上的 onMessage 事件处理函数,只有其中一个可以发送响应。当事件处理函数返回时,该函数将失效,除非您在事件处理函数中返回 true,表示您希望通过异步方式发送响应(这样,与另一端之间的消息通道将会保持打开状态,直到调用了 sendResponse)。

/**
 * 当消息从扩展程序进程或者内容脚本中发送时产生,其实就是监听发送过来的消息
 * @param {function} callback (message: any, MessageSender: sender, sendResponse: function) => {}
 * @return {boolean} 如果您需要在事件监听器返回后再调用 sendResponse 请在事件监听器中返回 true
 */
chrome.runtime.onMessage.addListener(function callback(
    message,
    MessageSender,
    sendResponse
) {
   
    // message 调用脚本发送的消息
    // sendResponse (response: any) => {} 当您产生响应时调用(最多一次)的函数,参数可以是任何可转化为 JSON 的对象。
});
  1. chrome.runtime.onMessageExternal
/**
 * 当消息从另一个扩展程序/应用发送时产生。不能在内容脚本中使用。
 * @param {function} callback (message: any, MessageSender: sender, sendResponse: function) => {}
 * @return {boolean} 如果您需要在事件监听器返回后再调用 sendResponse 请在事件监听器中返回 true
 */
chrome.runtime.onMessageExternal.addListener(function callback(
    message,
    MessageSender,
    sendResponse
) {
   
    // message 调用脚本发送的消息
    // sendResponse (response: any) => {} 当您产生响应时调用(最多一次)的函数,参数可以是任何可转化为 JSON 的对象。
});
  1. chrome.runtime.getBackgroundPage

chrome.extension.getBackgroundPage

/**
 * 获取当前扩展程序/应用中正在运行的后台网页的 JavaScript window 对象。
 * 如果后台网页是事件页面,系统会确保在调用回调函数前它已经加载。如果没有后台网页,将会设置错误信息。
 * @params {function} callback (backgroundPage: Window) => {}
 */
 chrome.r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值