質問内容
JSでGoogle拡張機能v3ポモドーロタイマーを作成しています。
chrome.tabs.sendMessage
やchrome.runtime.onMessage
周辺が分からず、アラームを鳴らせない。
【現状】
popup画面にて、タイマーが正常に稼働し、
時間になればアラームが鳴るようになっています。
ただ全てpopup.html / popup.jsにて行なっているので
当然画面を閉じると処理は止まっている状態です。
実現したいこと
popupの画面を閉じていても、アラームが鳴るようにしたい。
しかしv3では、backgroundにて音声が再生できないとの記事を見つけました。
【試そうとしたこと】
bgにて音声ファイルを取得し、content.jsにて再生。
該当のソースコード
background.js
1let audio = chrome.runtime.getURL('src/mp3/audio.mp3'); 2 3//結果を格納する配列を宣言 4let array = []; 5 6//ブラウザのタブを取得 7chrome.tabs.query({lastFocusedWindow: true},function(tabs){ 8 //取得したタブ数分を繰り返し 9 for(let i=0; i<tabs.length; i++){ 10 let output = tabs[i].url; //urlを取得 11 array.push(output); 12 } 13 console.log(array) //各開いてるタブのリンクを取得成功 14 chrome.tabs.sendMessage(array,({audio: `${audio}`}, function(response){ 15 response; 16 })) 17});
content.js
1chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { 2 request.audio.play(); 3 return true; 4 } 5);
発生している問題・エラーメッセージ
公式にて利用法を参照しましたが、それでも使い方が理解できていないのでご助力をお願いします。
Error handling response: TypeError: Error in invocation of tabs.sendMessage(integer tabId, any message, optional object options, optional function callback): No matching signature.

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/07/21 09:25
2022/07/21 09:31