Тут ви дізнаєтеся, як реалізувати бібліотеку Mellowtel у вашому проекті розширення Chrome/Edge. Орієнтовний час завершення: 5-7 хвилин.Documentation Index
Fetch the complete documentation index at: https://docs.mellowtel.com/llms.txt
Use this file to discover all available pages before exploring further.
Відповідність політикам браузера
Mellowtel відповідає політикам браузера, якщо інтеграція поважає вибір та налаштування користувачів. Офіційні плагіни Mellowtel доступні в Chrome та Edge. Незабаром ми подамо їх також в інші основні браузери. Chrome: https://chromewebstore.google.com/detail/support-with-mellowtel/jngbedjpioeongcicaomeideeompcbcc Edge: https://microsoftedge.microsoft.com/addons/detail/support-with-mellowtel/chpomjnojnimgcaomhmcmfgjinfoekhi У Chrome деякі розробники можуть зіткнутися з проблемами під час перевірки з політикою єдиної мети, яка стверджує, що плагін може мати лише одну чітко визначену функціональність (але часто інтерпретується непослідовно в розширеннях з багатьма функціями). У таких випадках ми рекомендуємо розробникам поділитися своїм особистим посиланням і попросити користувачів встановити офіційний плагін Mellowtel Chrome, який має єдину мету дозволити розробникам заробляти завдяки користувачам, які хочуть їх підтримати, ділячись своїми невикористаними ресурсами. Розробники можуть створити своє посилання з панелі керування Mellowtel і перенаправити користувачів на офіційний плагін Mellowtel Chrome. Якщо ж у вас є плагін у Chrome, який працює в просторі спільного використання пропускної здатності AI і це єдина мета плагіна, ви можете інтегрувати Mellowtel безпосередньо у ваш плагін. Натомість Edge, Firefox або Safari не мають цієї політики, тому розробники можуть також інтегрувати бібліотеку безпосередньо у свої продукти і переконатися, що вони запитують своїх користувачів, чи хочуть вони їх підтримати чи ні, і завжди залишають їм легкий спосіб змінити свої налаштування в будь-який час з самого плагіна.Рекомендовані браузери
На даний момент ми рекомендуємо інтегрувати Mellowtel у плагіни Edge, оскільки ми все ще працюємо над оптимізацією версій бібліотеки для Firefox і Safari.Вимоги
Перед тим як почати, переконайтеся, що:- Ваш плагін використовує Manifest V3.
- Ваш код організований у скомпільований спосіб, використовуючи Webpack, Rollup або інші збирачі. Якщо у вас не налаштований збирач, спочатку дотримуйтесь інструкції тут
Встановлення npm пакета
Щоб встановити npm пакет, ви можете виконати наступну команду в вашому терміналі:Yarn
Yarn
Якщо ви використовуєте yarn як ваш менеджер пакетів, ви можете виконати наступну команду:
Вибір реалізації
Існує два способи, як ви можете реалізувати бібліотеку у вашому розширенні. Якщо ви збираєтеся випустити розширення вперше в Web Store, дотримуйтесь Опції 1. Якщо у вас вже є розширення, опубліковане в Web Store, прочитайте “Як вирішити?”Як вирішити?
Коли ви встановлюєте ваше розширення з Web Store, чи з’являється вікно попередження, яке запитує дозвіл на “Читання та зміну всіх ваших даних на всіх веб-сайтах”? Воно виглядає так:
Опція 1
Якщо ви випускаєте розширення вперше в Web Store або імпортуєте бібліотеку в розширення, яке запитує дозвіл на роботу на всіх веб-сайтах, ви можете дотримуватись Опції 1.Налаштуйте ваш manifest
У вашому файлі manifest.json змініть розділиpermissions та host_permissions ось так:
Налаштуйте ваш service worker (фоновий скрипт)
У вашому файлі service worker вам потрібно імпортувати пакетmellowtel.
Примітка: Service worker також відомий як фоновий скрипт.
Ви можете скопіювати та вставити наступний код у ваш файл service worker, змінивши configuration_key на ваш власний ключ.
Розбір коду service worker
Розбір коду service worker
Імпортуйте пакет mellowtelВи можете використовувати Ініціалізуйте Mellowtel, викликавши метод
Mellowtel(configuration_key, options?) для створення нового екземпляра об’єкта Mellowtel. Об’єкт Mellowtel є вашим точкою входу до решти SDK Mellowtel. Ваш configuration_key є обов’язковим при виклику цієї функції, оскільки він ідентифікує ваше розширення для Mellowtel. Ви можете знайти ваш configuration_key на панелі керуванняinitBackground. Цей метод ініціалізує об’єкт Mellowtel і налаштує необхідні слухачі.Налаштуйте ваш content script
Вам потрібно імпортувати пакет mellowtel також у content scripts. Цей content script повинен виконуватись уall_frames та <all_urls> на document_start.
Ми пропонуємо створити новий content script (наприклад, content_start_mellowtel.js), де ви можете скопіювати та вставити наступний код.
Змініть configuration_key на ваш власний ключ.
manifest.json у розділі content_scripts разом з будь-яким іншим content script, який у вас вже є.
Ви можете скопіювати та вставити наступний код, змінивши name_of_your_content_script.js на ім’я, яке ви обрали.
Налаштуйте логіку opt-in/opt-out
Для активації Mellowtel користувачі повинні явно погодитися на використання сервісу. Ви можете реалізувати логіку opt-in/opt-out двома способами:- Використовуючи рекомендовану реалізацію з попередньо створеною сторінкою, наданою Mellowtel.
- Створюючи власні елементи opt-in/opt-out і використовуючи методи, показані тут
Якщо ви вирішите створити власні елементи opt-in/opt-out, розгляньте можливість використання Mellowtel Elements - попередньо створені UI компоненти, які обробляють згоду користувачів і налаштування з мінімальними зусиллями інтеграції.
service worker (також відомий як фоновий скрипт) і додайте наступний код:
Генерація посилання на налаштування
Щоб дати вашим користувачам повний контроль над їхньою пропускною здатністю, необхідно залишити легкодоступний спосіб для зміни їхніх налаштувань у будь-який момент. Ви можете згенерувати посилання, використовуючи методgenerateSettingsLink().
Цей метод поверне посилання, яке відкриє сторінку налаштувань Mellowtel, де користувачі можуть у будь-який час вирішити, чи хочуть вони погодитися чи відмовитися.
Це посилання повинно бути розміщене в спливаючому вікні, на сторінці налаштувань або в будь-якому іншому місці, де користувачі можуть легко отримати до нього доступ.
Наприклад, ви можете розмістити його у функції openSettings() ось так. Ви можете викликати openSettings() при натисканні кнопки або будь-якій іншій відповідній події: