Sto lavorando su un progetto che produce una estensione di google Chrome. In una pagina di sfondo ho una funzione denominata checkingProcess
. Questa funzione viene eseguita quando si apre una nuova scheda o una scheda aggiornata. (Ho provato a prendere il cambio di URL qui.)
chrome.tabs.onActivated.addListener((activeInfo) => {
checkingProcess(activeInfo.tabId)
})
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
checkingProcess(tab.id)
})
Quindi, in checkingProcess
funzione, ho alcune funzioni per la gestione dei dati e chiamate API. Poi ho provato a ricevere un messaggio che proviene da pop-up. Questo messaggio rappresenta che il popup è stato aperto dall'utente.
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.msg === 'popup_opened') {
sendResponse({
matches_length: response['matches'].length,
hostname: host,
})
}
chrome.runtime.lastError
})
Dopo di che, si invia una risposta al popup. Nella finestra popup, io ascoltare il messaggio e utilizzare la risposta in discesa.
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ı')
})
}, [])
Tuttavia, mi rendo conto che questo messaggio di processo viene eseguito solo una volta, ma ho bisogno di eseguire più volte per accedere ai dati in background contemporaneamente. Come posso fare?