Клиент: Chrome-расширение для редиректа в Telegram из уведомлений Windows

В Windows по клику на системное уведомление о событии в Телеграм вместо запуска Telegram открывает браузер с поиском Bing по запросу telegram. В Windows нет стандартного решения, которое по клику на уведомление сразу открывает нужный мессенджер. Каждый раз закрывать этот поиск вручную неудобно. Ниже решение - минимальное расширение для Chrome, которое:

  • срабатывает на странице поиска Bing с запросом telegram или телеграм;
  • открывает приложение Telegram через tg://;
  • через несколько секунд закрывает вкладку с Bing.

Структура расширения

Создайте папку, например bing-telegram-redirect, и положите в неё три файла:

  • manifest.json
  • redirect.js
  • background.js

manifest.json

{
	"manifest_version": 3,
	"name": "Bing → Telegram redirect",
	"version": "1.0",
	"description": "Открывает Telegram, если на Bing открыт поиск по запросу «telegram».",
	"permissions": ["tabs"],
	"host_permissions": ["https://www.bing.com/*"],
	"background": {
		"service_worker": "background.js"
	},
	"content_scripts": [
		{
			"matches": ["https://www.bing.com/search*"],
			"js": ["redirect.js"],
			"run_at": "document_start"
		}
	]
}

redirect.js

(function RedirectFromBing() {
	'use strict';

	const url = new URL(window.location.href);
	const query = (url.searchParams.get('q') || '').trim().toLowerCase();

	// Срабатываем только на запросы "telegram" или "телеграм"
	if (query !== 'telegram' && query !== 'телеграм') {
		return;
	}

	// Просим background закрыть текущую вкладку немного позже
	if (chrome.runtime && chrome.runtime.sendMessage) {
		chrome.runtime.sendMessage({ action: 'closeTab' });
	}

	// Пытаемся открыть приложение Telegram
	window.location.href = 'tg://resolve?domain=telegram';
})();

background.js

chrome.runtime.onMessage.addListener((message, sender) => {
	if (message.action !== 'closeTab') {
		return;
	}

	const tabId = sender?.tab?.id;
	if (typeof tabId !== 'number') {
		return;
	}

	// Даем системе время передать tg:// в Telegram
	setTimeout(() => {
		chrome.tabs.remove(tabId);
	}, 3000);
});

Как установить расширение

  • Откройте chrome://extensions/ в Chrome.
  • Включите «Режим разработчика».
  • Нажмите «Загрузить распакованное расширение» и выберите папку с файлами.
  • Перейдите по адресу https://www.bing.com/search?q=telegram и проверьте, что:
    • Chrome предлагает открыть Telegram;
    • вкладка с Bing закрывается через пару секунд.
Просмотров: 1.5k
Материал помог? Оценка помогает находить устаревшие и спорные решения.

Комментарии

0

Нашли ошибку или хотите дополнить материал?

Комментариев пока нет.Можно первым дополнить материал или сообщить об ошибке.
Telegram