Eu estou trabalhando em um projeto que produz uma extensão do google Chrome. Em uma página de plano de fundo, eu tenho uma função chamada checkingProcess
. Esta função é executada quando uma nova guia é aberta ou uma guia é atualizado. (Eu tentei pegar a alteração da URL aqui.)
chrome.tabs.onActivated.addListener((activeInfo) => {
checkingProcess(activeInfo.tabId)
})
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
checkingProcess(tab.id)
})
Em seguida, no checkingProcess
função, eu tenho algumas funções para a manipulação de dados e chamadas de API. Então eu tentei receber uma mensagem que vem de pop-up. Esta mensagem representa que o pop-up foi aberta pelo usuário.
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.msg === 'popup_opened') {
sendResponse({
matches_length: response['matches'].length,
hostname: host,
})
}
chrome.runtime.lastError
})
Depois disso, ele envia uma resposta para o popup. No pop-up, que eu ouça a mensagem e use a resposta na caixa pop-up.
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ı')
})
}, [])
No entanto, percebo que este processo de mensagem é executada apenas uma vez, mas eu preciso executá-lo várias vezes para acessar os dados em segundo plano, simultaneamente. Como posso fazer isso?