要在React应用程序中安全地向Chrome扩展程序发送消息,可以使用Chrome的消息传递API。以下是一个解决方案的示例代码:
{
"manifest_version": 2,
"name": "My Extension",
"version": "1.0",
"permissions": [
"tabs",
"activeTab"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [{
"matches": ["https://your-react-app-url"],
"js": ["contentScript.js"]
}],
"browser_action": {
"default_icon": "icon.png"
}
}
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.message === "send_message") {
// 处理来自React应用程序的消息
console.log(request.data); // 在控制台显示消息数据
// 这里可以做一些其他操作,如发送回复消息给React应用程序
sendResponse({ message: "response_message", data: "Response data" });
}
});
// 向background.js发送消息
chrome.runtime.sendMessage({ message: "send_message", data: "Message data" }, function(response) {
console.log(response); // 在控制台显示回复消息
});
import React from "react";
class App extends React.Component {
sendMessageToExtension() {
// 向Chrome扩展程序发送消息
chrome.runtime.sendMessage({ message: "send_message", data: "Message data" }, function(response) {
console.log(response); // 在控制台显示回复消息
});
}
render() {
return (
);
}
}
export default App;
请注意,上述代码假设您已经在Chrome中加载了扩展程序,并在React应用程序中运行。确保在manifest.json文件中将"your-react-app-url"替换为您的React应用程序的URL。