Я создаю межбраузерное расширение и сталкиваюсь с проблемой, я не могу отправить sendMessage из chrome без 'externally_connectable' и 'match' в нем.
Руководство Google сообщило, что я не могу сопоставить URL-адреса, подобные этому "" или этому "http:///", только целевой URL-адрес, например: 'http://localhost:3000/', как избежать этого и использовать' runtime.sendMessage 'с любой веб-страницы?
мой входной скрипт
const ID = 'cb7b13f5efcbcc4453d4ebf63f7';
const send = (data) => new Promise((resolve, reject) => {
extensionizer.runtime.sendMessage(ID, { method: 'send', data }, (res) => {
if (res.error) reject(res.error);
resolve(res);
});
});
мой фоновый скрипт
const onExternalMessage = (request, sender, sendResponse) => {
const id = Date.now();
requestQueue.push({
data: request.data, sender, id, cb: sendResponse,
});
};
manifest.json
{
"short_name": "Send",
"name": "Sender",
"manifest_version": 2,
"browser_action": {
"default_popup": "./index.html",
},
"version": "1.0",
"background": {
"scripts": [
"background.js"
]
},
"content_scripts": [
{
"matches": [
"file://*/*",
"http://*/*",
"https://*/*"
],
"js": [
"./content.js"
],
"run_at": "document_start",
"all_frames": true
}
],
"permissions": [
"storage"
],
"web_accessible_resources": [
"inpage.js",
"background.js"
]
}