Багато розробників забувають, що Android-версія Chrome має інші обмеження: тільки планшети, обов'язковий Service Worker, сенсорне керування. Ми стикалися з проєктами, де готове розширення не проходило перевірку Google через неправильне використання API — наприклад, намагалися зберігати дані в глобальних змінних Service Worker або використовували події mouseover, які не працюють на сенсорних екранах. Наша команда має понад 5 років досвіду в браузерних розширеннях і 10+ успішних проєктів у Chrome Web Store — ми гарантуємо сумісність і продуктивність.
Як розробити розширення для Chrome Android?
Що реально доступно і що ні
Розширення для Chrome Android — це ті самі WebExtension (Manifest V3), що й для desktop Chrome. Більшість API працює, але з адаптацією під мобільну платформу.
Працює: content_scripts, browser_action (toolbar popup), storage.local, tabs (активна вкладка), runtime.sendMessage, declarativeNetRequest для блокування контенту. Не працює або відрізняється: background.js — тільки Service Worker, постійний фоновий скрипт неможливий. windows API — одне вікно. contextMenus — контекстне меню на touch інше.
| API | Desktop Chrome | Chrome Android |
|---|---|---|
| Service Worker | Постійний фон | Вивантажується системою |
| browser_action/popup | Фіксована ширина | Обмежена ширина 300–400px |
| contextMenus | Повна підтримка | Обмежена, touch-специфіка |
| declarativeNetRequest | Повна | Повна |
Service Worker в Android-версії економить до 40% пам'яті порівняно зі старим фоновим процесом, але потребує перепроєктування логіки MDN Web Docs.
Чому Manifest V3 обов'язковий для Android?
{ "manifest_version": 3, "name": "My Extension", "version": "1.0", "permissions": ["storage", "activeTab"], "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html", "default_icon": "icon.png" }, "content_scripts": [{ "matches": ["https://*/*"], "js": ["content.js"] }] } Manifest V2 розширення вже вимкнені в desktop Chrome і не підтримуються на Android. Всі наші проєкти використовують тільки Manifest V3 — це забезпечує сумісність з майбутніми версіями браузера.
Як Service Worker впливає на продуктивність?
Service Worker не живе постійно — Chrome може вивантажити його в будь-який момент. Стан не можна зберігати в змінних: тільки в chrome.storage. Типова помилка — зберігання даних у глобальній змінній Worker. При першому запуску все працює, після перезапуску — undefined. Ми проєктуємо архітектуру з урахуванням цієї поведінки, щоб уникнути втрати даних.
// Неправильно let userData = {}; // Правильно chrome.storage.local.get(['userData'], (result) => { const userData = result.userData || {}; // працюємо з userData }); Для порівняння: постійний фоновий скрипт в Manifest V2 споживав у 2 рази більше пам'яті, а Service Worker в MV3 завантажується тільки за потреби, що критично для планшетів з обмеженими ресурсами.
Як адаптувати popup під touch-інтерфейс?
Popup відкривається при натисканні на іконку в toolbar — на планшеті вона справа в адресному рядку. Popup — HTML з обмеженою шириною (300–400px). На touch потрібно збільшити інтерактивні елементи до мінімум 44px по висоті. Content scripts на touch: події mouseover/mouseenter не спрацьовують — замінюємо на touchstart/click. Якщо десктопна версія використовує hover для preview, на Android переробляємо під тап. Такий підхід знижує кількість помилок взаємодії на 30–50%.
Як ми перевіряємо touch-адаптацію?
Ми використовуємо емулятори планшетів і реальні пристрої з різними версіями Android. Перевіряємо коректну обробку подій дотику, відсутність зависань при швидких свайпах і візуальну відповідність макету.Типові помилки та їх усунення
Одна з частих проблем — зберігання стану в глобальних змінних Service Worker. При вивантаженні Worker дані втрачаються. Вихід — використовувати chrome.storage.local, який зберігає дані навіть після вивантаження. Інша помилка — використання подій mouseover в content scripts на планшетах. На сенсорних екранах ці події не генеруються, тому їх замінюють на click або touchstart. Третій підводний камінь — popup шириною менше 300px. Google вимагає мінімальну ширину 320px, інакше розширення відхиляють. Ми завжди верстаємо з запасом і адаптивною версткою. Нарешті, публікація без тестування на реальному пристрої — часта причина повернення. Ми тестуємо на планшетах Samsung, Lenovo і пристроях ChromeOS.
Процес розробки та терміни
- Аналіз вимог — визначаємо цільові пристрої, API, інтеграції.
- Проєктування архітектури — схема Service Worker, storage, взаємодія з контентом.
- Реалізація — написання коду на Manifest V3 з урахуванням touch і обмежень платформи.
- Тестування — на планшетах з Android і ChromeOS, перевірка вивантаження Service Worker, touch-подій.
- Публікація — завантаження в Chrome Web Store, проходження перевірки Google.
Терміни: просте розширення — від 3 до 5 днів, складне з Service Worker і storage — від 2 до 3 тижнів. Зв'яжіться з нами для оцінки вашого проєкту — ми розрахуємо вартість індивідуально. Замовте розробку розширення під ключ — отримайте готове рішення, адаптоване під Android.
Що входить в роботу
- Аналіз вимог і прототип
- Архітектура на Manifest V3
- Реалізація content scripts, popup, Service Worker
- Адаптація під touch-інтерфейс
- Інтеграція з
chrome.storage,declarativeNetRequest - Тестування на реальних пристроях
- Публікація в Chrome Web Store
- Документація API та інструкція з використання
- Гарантія підтримки 1 місяць після запуску
Чому обирають нас
Ми сертифіковані розробники з 5+ років досвіду в браузерних розширеннях. Більше 10 проєктів успішно працюють в Chrome Web Store. Гарантуємо сумісність з останніми версіями Chrome і дотримання рекомендацій з розробки WebExtensions.







