Estoy trabajando en un proyecto que produce una extensión de Chrome. En una página de fondo tengo una función denominada checkingProcess
. Esta función se ejecuta cuando se abre una pestaña nueva o una ficha actualizada. (Traté de coger el cambio de URL aquí.)
chrome.tabs.onActivated.addListener((activeInfo) => {
checkingProcess(activeInfo.tabId)
})
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
checkingProcess(tab.id)
})
A continuación, en el checkingProcess
función, tengo algunas de las funciones para el manejo de datos y llamadas a la API. Entonces traté de recibir un mensaje que viene de la ventana emergente. Este mensaje representa que la ventana emergente, que fue inaugurado por el usuario.
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.msg === 'popup_opened') {
sendResponse({
matches_length: response['matches'].length,
hostname: host,
})
}
chrome.runtime.lastError
})
Después de eso, envía una respuesta a la ventana emergente. En la ventana emergente, puedo escuchar el mensaje y el uso de la respuesta en la ventana emergente.
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ı')
})
}, [])
Sin embargo, me doy cuenta de que este mensaje de proceso que sólo se ejecuta una vez, pero tengo que ejecutar varias veces para acceder a los datos en segundo plano de forma simultánea. ¿Cómo puedo hacer eso?