Розробка розширення Chrome Android: Manifest V3, Service Worker

Багато розробників забувають, що Android-версія Chrome має інші обмеження: тільки планшети, обов'язковий Service Worker, сенсорне керування. Ми стикалися з проєктами, де готове розширення не проходило перевірку Google через неправильне використання API — наприклад, намагалися зберігати дані в глобал

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка розширення Chrome Android: Manifest V3, Service Worker
Складний
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Багато розробників забувають, що 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.

Процес розробки та терміни

  1. Аналіз вимог — визначаємо цільові пристрої, API, інтеграції.
  2. Проєктування архітектури — схема Service Worker, storage, взаємодія з контентом.
  3. Реалізація — написання коду на Manifest V3 з урахуванням touch і обмежень платформи.
  4. Тестування — на планшетах з Android і ChromeOS, перевірка вивантаження Service Worker, touch-подій.
  5. Публікація — завантаження в 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.