Я читаю о передаче сообщений между расширением и веб-страницей, и у меня есть вопрос о разрешениях.
Мой пример использования: мне нужно общаться со всеми веб-страницами, но только активный. На веб-странице, когда пользователь нажимает кнопку «[Connect with my Extension]
», он отправляет сообщение на добавочный номер. Что я делаю сейчас, так это вставляю скрипт content_script во все веб-страницы:
// manifest.json snippet
"permissions": ["storage"],
"content_scripts": [{
"js": ["content.js"],
"matches": ["http://*/*", "https://*/*"],
"run_at": "document_start"
}],
и content.js
делает chrome.runtime.sendMessage
/ chrome.runtime.onMessage
с фоном. Это работает, но когда я публикую sh мое расширение, Chrome говорит:
Из-за следующей проблемы ваше расширение может потребовать углубленного просмотра:
Вместо запроса разрешений широкого хоста рассмотрите возможность использования разрешения activeTab или укажите сайты, к которым вашему расширению необходим доступ. Оба варианта более безопасны, чем полный доступ к неопределенному количеству сайтов, и могут помочь минимизировать время просмотра.
Разрешение activeTab позволяет получить доступ к вкладке в ответ на явный жест пользователя.
{ ... "permissions": ["activeTab"] }
Мой вопрос: есть ли способ достичь того, что я хочу, используя только activeTab
, как подсказывает Chrome?
Мое первоначальное понимание - НЕТ. activeTab
активируется только для определенных c пользовательских взаимодействий , тогда как мне нужно было бы активировать его по нажатию кнопки на веб-странице. Так что моя единственная надежда - бороться с «подробными обзорами» Chrome. Это правильно?
Спасибо.