赞
踩
Runtime API 上的大多数方法都不需要任何权限
但是 sendNativeMessage() 和 connectNative() 除外,它们需要 nativeMessaging 权限。
{
"permissions": [
"nativeMessaging"
],
}
可以使用以下方法和事件与扩展程序中的不同上下文以及其他扩展程序进行通信:
扩展程序还可以使用 connectNative() 和 sendNativeMessage() 将消息传递给用户设备上的原生应用。
(async () => { // 使用 sendMessage 从 Content 发送消息 const response = await chrome.runtime.sendMessage({greeting: "hello"}); console.log(response); // 使用 onMessage.addListener Content 接收消息 chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { console.log(sender.tab ? "from a content script:" + sender.tab.url : "from the extension"); if (request.greeting === "hello") sendResponse({farewell: "goodbye"}); }); // 使用 connect 从 Content 发送和接收消息 var port = chrome.runtime.connect({name: "knockknock"}); port.postMessage({joke: "Knock knock"}); port.onMessage.addListener(function(msg) { if (msg.question === "Who's there?") port.postMessage({answer: "Madame"}); else if (msg.question === "Madame who?") port.postMessage({answer: "Madame... Bovary"}); }); })();
(async () => { // 使用 sendMessage 从 background/service-worker 发送消息 const [tab] = await chrome.tabs.query({active: true, lastFocusedWindow: true}); const response = await chrome.tabs.sendMessage(tab.id, {greeting: "hello"}); console.log(response); // 使用 onMessage.addListener background/service-worker 接收消息 chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { console.log(sender.tab ? "from a content script:" + sender.tab.url : "from the extension"); if (request.greeting === "hello") sendResponse({farewell: "goodbye"}); }); // 使用 onConnect background/service-worker 接收消息和发送 chrome.runtime.onConnect.addListener(function(port) { console.assert(port.name === "knockknock"); port.onMessage.addListener(function(msg) { if (msg.joke === "Knock knock") port.postMessage({question: "Who's there?"}); else if (msg.answer === "Madame") port.postMessage({question: "Madame who?"}); else if (msg.answer === "Madame... Bovary") port.postMessage({question: "I don't get it."}); }); }); })();
尝试连接扩展程序/应用(例如后台网页)或其他扩展程序/应用中的监听器
chrome.runtime.connect(
extensionId?:
string,
connectInfo?:
object,
)
连接到主机中的原生应用
chrome.runtime.connectNative(
application:
string,
)
检索当前扩展程序/应用中运行的后台网页的 JavaScript“window”对象
仅限 Popup 页面使用
chrome.runtime.getBackgroundPage(
callback?:
function,
)
(backgroundPage?: Window)=>void
提取与此扩展程序相关联的有效上下文的相关信息
chrome.runtime.getContexts(
filter:
ContextFilter,
callback?:
function,
)
chrome.runtime.getManifest()
从清单中返回有关应用或扩展程序的详细信息,返回的对象是完整清单文件的序列化内容。
返回软件包目录的 DirectoryEntry。
只能在 popup 页面调用
chrome.runtime.getPackageDirectoryEntry(
callback?:
function,
)
返回有关当前平台的信息。
chrome.runtime.getPlatformInfo(
callback?:
function,
)
根据路径获取对应的网址 URL
chrome.runtime.getURL(path:string)
打开扩展程序的选项页面
chrome.runtime.openOptionsPage(callback?:function)
chrome.runtime.reload()
重新加载应用或扩展程序。
对此应用程序/扩展程序进行立即更新检查。
chrome.runtime.requestUpdateCheck(callback?:function)
chrome.runtime.restart()
当应用在自助服务终端模式下运行时,重启 ChromeOS 设备
当应用在自助服务终端模式下运行时,在特定秒数后重启 ChromeOS 设备
chrome.runtime.restartAfterDelay(seconds:number,callback?:function)
向扩展程序/应用或其他扩展程序/应用中的事件监听器发送一条消息
chrome.runtime.sendMessage(
extensionId?:
string,
message:
any,
options?:
object,
callback?:
function,
)
向原生应用发送单条消息。
chrome.runtime.sendNativeMessage(
application:
string,
message:
object,
callback?:
function,
)
设置卸载后要访问的网址
chrome.runtime.setUninstallURL(
url:string,
callback?:function,
)
从扩展程序进程或内容脚本,通过 runtime.connect 建立连接时触发。
chrome.runtime.onConnect.addListener(
callback:function,
)
从其他扩展程序通过 runtime.connect 建立连接时触发。
chrome.runtime.onConnectExternal.addListener(
callback:
function,
)
从原生应用建立连接时触发
chrome.runtime.onConnectNative.addListener(
callback:
function,
)
首次安装扩展程序、将扩展程序更新到新版本以及 Chrome 更新到新版本时触发
chrome.runtime.onInstalled.addListener(
callback:
function,
)
当消息从扩展程序进程通过 runtime.sendMessage 或内容脚本通过 tabs.sendMessage 发送时触发
chrome.runtime.onMessage.addListener(
callback:
function,
)
(message: any,sender: MessageSender,sendResponse:function)=>boolean|undefined
从其他扩展程序/应用发送消息时触发通过 runtime.sendMessage。无法在内容脚本中使用。
chrome.runtime.onMessageExternal.addListener(
callback:
function,
)
(message:any,sender:MessageSender,sendResponse:function)=>boolean|undefined
当应用或运行该应用的设备需要重启时触发
chrome.runtime.onRestartRequired.addListener(
callback:
function,
)
在安装了此扩展程序的配置文件首次启动时触发
chrome.runtime.onStartup.addListener(
callback:
function,
)
在取消加载之前被发送到事件页面
chrome.runtime.onSuspend.addListener(
callback:
function,
)
在 onSuspend 之后发送
chrome.runtime.onSuspendCanceled.addListener(
callback:
function,
)
有可用更新,但由于应用当前正在运行而未立即安装时触发
chrome.runtime.onUpdateAvailable.addListener(
callback:
function,
)
通过此扩展程序中的用户脚本建立连接时触发
chrome.runtime.onUserScriptConnect.addListener(
callback:
function,
)
从与同一扩展程序相关联的用户脚本发送消息时触发
chrome.runtime.onUserScriptMessage.addListener(
callback:
function,
)
(message: any,sender: MessageSender,sendResponse:function)=>boolean|undefined
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。