Я работаю над проектом, который создает расширение Chrome. На фоновой странице у меня есть функция с именем checkingProcess
. Эта функция выполняется при открытии новой вкладки или обновлении вкладки. (Я попытался уловить изменение URL-адреса здесь.)
chrome.tabs.onActivated.addListener((activeInfo) => {
checkingProcess(activeInfo.tabId)
})
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
checkingProcess(tab.id)
})
Затем, в checkingProcess
функция, у меня есть некоторые функции для обработки данных и вызовов API. Затем я попытался получить сообщение, которое приходит из всплывающего окна. Это сообщение означает, что всплывающее окно было открыто пользователем.
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.msg === 'popup_opened') {
sendResponse({
matches_length: response['matches'].length,
hostname: host,
})
}
chrome.runtime.lastError
})
После этого он отправляет ответ на всплывающее окно. Во всплывающем окне я прослушиваю сообщение и использую ответ во всплывающем окне.
useEffect(() => {
chrome.runtime.sendMessage({ msg: 'popup_opened' }, (res) => {
setHostname(res['hostname'])
setMatchesLength(res['matches_length'])
console.log(res['hostname'], 'burası')
console.log(res['matches_length'], 'burası')
})
}, [])
Однако я понимаю, что этот процесс отправки сообщений выполняется только один раз, но мне нужно запустить его несколько раз, чтобы одновременно получить доступ к данным в фоновом режиме. Как я могу это сделать?