Files
testing-tool/entrypoints/content.ts
T
雨霖铃 22985f4c18 feat:添加测试页面并优化时间戳工具
refactor: 优化时间戳转换组件及整体代码结构
chore: 更新构建配置和包依赖项
2026-02-13 17:29:01 +08:00

71 lines
2.1 KiB
TypeScript

import '../.wxt/types/imports.d.ts';
import { createRecorder } from '@/utils/useRecorder';
interface IResponse {
ok: boolean;
error?: string;
data?: unknown;
}
export default defineContentScript({
// matches: ['*://*.google.com/*'],
matches: ['<all_urls>'],
runAt: 'document_start',
main() {
const recorder = createRecorder();
let isRecording = false;
onMessage('getStringLength', (message) => {
console.log(`[content] getStringLength received: ${message.data}`);
});
// 监听来自 background script 的消息
chrome.runtime.onMessage.addListener(
(msg: { type: string }, _sender, sendResponse: (response: IResponse) => void) => {
const handleAsyncMessage = async () => {
try {
switch (msg.type) {
// 在这里处理异步消息类型
case messages.content.checkStatus:
return { ok: true, data: { isRecording } };
case messages.content.to.startRecording: {
const started = await recorder.startRecord(messages.content.from.saveTrackeEvents);
if (started) {
isRecording = true;
return { ok: true };
} else {
// 如果启动失败,返回错误信息
return { ok: false, error: 'Failed to start recorder' };
}
}
case messages.content.to.stopRecording:
// 停止录制的处理逻辑
console.log('[content] stopRecording received');
recorder.stopRecord();
isRecording = false;
return { ok: true };
default:
return { ok: false, error: 'Unknown message type' };
}
} catch (error) {
console.error('Error handling message:', error);
return { ok: false };
}
};
handleAsyncMessage().then((response) => {
if (sendResponse) {
sendResponse(response);
}
});
return true;
},
);
},
});