Pracujem na projekte, ktorý produkuje rozšírenie prehliadača Chrome. V pozadí stránky mám funkcie s názvom checkingProcess
. Táto funkcia je vykonávaná pri novej karty otvoriť alebo záložka sa aktualizuje. (Snažil som sa chytiť zmena URL tu.)
chrome.tabs.onActivated.addListener((activeInfo) => {
checkingProcess(activeInfo.tabId)
})
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
checkingProcess(tab.id)
})
Potom, v checkingProcess
funkcia, mám niekoľko funkcií pre spracovávanie údajov a volanie API. Potom som sa snažil dostať správu, že pochádza z popup. Táto správa predstavuje, že dav bol otvorený užívateľom.
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.msg === 'popup_opened') {
sendResponse({
matches_length: response['matches'].length,
hostname: host,
})
}
chrome.runtime.lastError
})
Po tom, odošle odpoveď na okno. V pop-up, som si chcete správu vypočuť a použiť ako odpoveď na okno.
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ı')
})
}, [])
Avšak, uvedomujem si, že táto správa procesu je iba vykonané raz, ale musím bežať niekoľkokrát na prístup k údajom v pozadí súčasne. Ako môžem to urobiť?