Согласно документации, sdk.Compose.registerComposeViewHandler должен вызываться всякий раз, когда создается представление составления, включая встроенные ответы:
https://inboxsdk.github.io/inboxsdk-docs/compose/
Минимальное воспроизведение (скрипт содержимого)
Код: Выделить всё
// content.js
(function() {
InboxSDK.load(2, 'sdk_xxx').then((sdk) => {
console.log('SDK ready');
// Register once, immediately
sdk.Compose.registerComposeViewHandler((composeView) => {
console.log('ComposeView detected') // Never logged if inline reply
});
});
})();
Код: Выделить всё
{
"manifest_version": 3,
"name": "My Extension",
"version": "1.0.0",
"permissions": [],
"host_permissions": ["https://mail.google.com/*"],
"content_scripts": [
{
"matches": ["https://mail.google.com/*"],
"js": ["content.js"],
"run_at": "document_end" // also tried "document_start"
}
],
"web_accessible_resources": [{
"resources": ["*"],
"matches": ["https://mail.google.com/*"]
}]
}
- Обработчик должен срабатывать для каждого создания, включая встроенные ответы, открытые непосредственно в цепочке.
- Встроенный ответ: обработчик не срабатывает (нет журнала консоли).
- Всплывающий ответ: обработчик срабатывает (появляется журнал консоли).
- Регистрация обработчика составления как можно раньше, сразу после разрешения InboxSDK.load (без дополнительной асинхронной синхронизации).
/> - Переключение run_at между «document_start» и «document_end».
- Гарантия регистрации обработчика ровно один раз (без дублирующих регистраций).
- Использование Conversations.registerThreadViewHandler для перечисления существующих представлений создания:
Даже в этом случае встроенный ответ не запускает мой первоначальный обработчик создания сообщения.
Код: Выделить всё
sdk.Conversations.registerThreadViewHandler((threadView) => { try { threadView.getComposeViews().forEach(cv => console.log('Existing CV', cv)); } catch {} threadView.on('reply', ({composeView}) => console.log('Reply CV', composeView)); threadView.on('forward', ({composeView}) => console.log('Fwd CV', composeView)); }); - Проверка того, что никакие флаги функций, настройки или проверки лицензирования не блокируют регистрацию (регистрация обработчика происходит безоговорочно).
- Тестирование с новым профилем и без других расширений Gmail.
Будем признательны за любые указатели или работающий воспроизводящий встроенный ответ.
Подробнее здесь: https://stackoverflow.com/questions/798 ... es-works-o
Мобильная версия