Как я могу получать уведомления о вкладках в расширении Chrome, чтобы расширение могло отображать настольное оповещение каждый раз, когда поступает новое уведомление - PullRequest
6 голосов
/ 28 сентября 2011

Можно ли читать уведомления на вкладках (facebook, twitter, gmail и т. Д. Показывает количество уведомлений) через расширение Google Chrome. Чтобы я мог отображать оповещение на рабочем столе при получении нового уведомления. enter image description here

1 Ответ

4 голосов
/ 28 сентября 2011

Это можно сделать, периодически проверяя заголовки всех соответствующих вкладок, извлекая текущий номер уведомления (если имеется) и уведомляя пользователя в случае обнаружения изменения количества уведомлений.

Однако, в зависимости от того, как часто вы выполняете эту проверку, пользователь, вероятно, заметит перед вами. Альтернативный подход заключается в использовании сценариев содержимого для внедрения JavaScript (опять же, только на соответствующие страницы - facebook и т. Д.), Который прослушивает изменения в элементе title страницы и отправляет сообщение на вашу фоновую страницу при обнаружении, которое затем должно отображать уведомление на рабочем столе.

Я не знал, сработает ли это изначально, поскольку я не знал, что title изменения можно прослушать, но быстрый Google предоставил этот ответ;

как прослушать изменения элемента заголовка?

Таким образом, все, что вам нужно сделать, это изменить код в ответе на этот вопрос, чтобы отправить сообщение на фоновую страницу вместо отображения предупреждения. Например;

function titleModified() {
    chrome.extension.sendRequest({
        title: document.title
    });
}

На фоновой странице должен быть прослушиватель onRequest , который затем попытается проанализировать полученный заголовок и определить, было ли сделано уведомление.

Не забудьте правильно настроить разрешения в манифесте, чтобы внедрить JavaScript, когда ваши пользователи находятся на целевых сайтах, а также использовать настольные уведомления .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...