Как получить доступ / разрешение для sendMessage для отправки данных с любых веб-страниц в фоновый скрипт - PullRequest
0 голосов
/ 29 октября 2018

Я создаю межбраузерное расширение и сталкиваюсь с проблемой, я не могу отправить 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"
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...