Базовий чат не потребує дозволів, а вибрані хости окремо підключають APNs, FCM або мікрофон.
Явно виберіть можливість
Чат і нативний віджет є базовим релізом. Додаткові продукти iOS — DobroDeskPush і DobroDeskVoice. Android-координати — com.dobrodesk:dobrodesk-push:0.2.0 і com.dobrodesk:dobrodesk-voice:0.2.0 у локальному Maven-репозиторії бандла. Це нативні продукти: обгортки Flutter, React Native, NativeScript і Capacitor не експортують push-клієнт. Публічний release asset: https://github.com/comstud-io/dobrodesk-mobile-sdk/releases/download/v0.2.0/dobrodesk-mobile-sdk-0.2.0-bundle.tar.gz.
Не додавайте жодну можливість до кожного хоста за замовчуванням. Push вимагає реєстрації APNs або FCM на стороні хоста, ротації токенів, дозволу на сповіщення та автентифікованого relay. Voice вимагає дозволу на мікрофон і керування аудіожиттєвим циклом хостом. Базовий SDK не запитує жодного дозволу й не запускає роботу у фоні.
// Register the extracted bundle's native/maven directory in host settings first.
dependencies {
implementation("com.dobrodesk:dobrodesk-voice:0.2.0") // optional
// implementation("com.dobrodesk:dobrodesk-push:0.2.0") // optional
}Залишайте реєстрацію push поза базовим SDK
Реєструйте device token через автентифікований потік провайдера й прив'язуйте його до перевіреного акаунта або сесії DobroDesk. Оновлюйте токени, видаляйте їх під час logout і доручайте серверу відкидати недійсні токени провайдера. Обмежуйте payload сповіщення документованими ідентифікаторами. Не додавайте до push текст відповіді, повідомлення клієнта або облікові дані.
Базовий клієнт не імпортує Firebase і не створює реєстрацію APNs або FCM. Хост, якому push не потрібен, не має запитувати дозвіл на сповіщення або включати додатковий артефакт.
Явно керуйте дозволом на voice та очищенням
Запитуйте дозвіл на мікрофон лише після вибору voice клієнтом і перевірки, що інтеграція може ним користуватися. Якщо дозвіл відхилено або серверна можливість недоступна, сховайте дію voice замість постійно вимкненого елемента.
Звільняйте під'єднаний voice facade під час logout або заміни обгортки. Прямі нативні хости мають звільнити його перед reset і заміною клієнта. Зупиняйте незавершену аудіороботу, відписуйте слухачів та ігноруйте пізні запуски після close, reset або зміни акаунта.
Під'єднуйте voice лише після нативного налаштування
Після встановлення вибраного нативного voice модуля платформа хоста створює DobroDeskVoicePort, потрібний обгортці фреймворку. Port створює хост. Базовий SDK не надає публічної реалізації аудіо й сам не запитує дозвіл.
const voice = await client.attachVoice(nativeVoicePort);
await voice.start();
// On logout or host teardown:
await voice.dispose();