Le SDK de chat de base reste sans permission tandis que certains hôtes activent explicitement APNs, FCM ou le microphone.
Choisir une capacité explicitement
Le chat et le widget natif constituent la release de base. Les produits iOS optionnels sont DobroDeskPush et DobroDeskVoice. Les coordonnées Android sont com.dobrodesk:dobrodesk-push:0.2.0 et com.dobrodesk:dobrodesk-voice:0.2.0 dans le dépôt Maven local du bundle. Ce sont des produits natifs : les wrappers Flutter, React Native, NativeScript et Capacitor n'exportent pas de client push. L'artefact public est https://github.com/comstud-io/dobrodesk-mobile-sdk/releases/download/v0.2.0/dobrodesk-mobile-sdk-0.2.0-bundle.tar.gz.
N'ajoutez aucune de ces capacités à tous les hôtes par défaut. Push exige l'enregistrement APNs ou FCM géré par l'hôte, la rotation des tokens, la permission de notification et un relais authentifié. Voice exige la permission microphone et le cycle audio géré par l'hôte. Le SDK de base ne demande aucune de ces permissions et ne démarre pas de travail en arrière-plan.
// 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
}Garder l'enregistrement push hors du SDK de base
Enregistrez le device token via le flux authentifié du fournisseur et liez-le au compte ou à la session DobroDesk vérifié. Faites tourner les tokens, retirez-les lors du logout et laissez le serveur supprimer les tokens fournisseur invalides. Limitez le payload de notification aux identifiants documentés. N'y mettez ni texte de réponse, ni message client, ni credential.
Le client de base n'importe pas Firebase et ne crée pas d'enregistrement APNs ou FCM. Un hôte qui n'a pas besoin de push ne doit pas demander la permission de notification ni inclure l'artefact optionnel.
Rendre la permission voice et le nettoyage explicites
Demandez la permission microphone uniquement après le choix de voice par le client et lorsque l'intégration est autorisée à l'utiliser. Si la permission est refusée ou si la capacité serveur est indisponible, masquez l'action voice plutôt que d'afficher un contrôle désactivé en permanence.
Libérez la façade voice attachée lors du logout ou du remplacement du wrapper. Les hôtes natifs directs doivent la libérer avant reset et le remplacement du client. Arrêtez le travail audio en attente, désabonnez les écouteurs et ignorez les démarrages tardifs après close, reset ou changement de compte.
Attacher la voix seulement après la configuration native
Après l'installation par l'hôte du module voice natif sélectionné, son adaptateur de plateforme crée le DobroDeskVoicePort requis par le wrapper du framework. Le port est créé par l'hôte. Le SDK de base ne fournit aucune implémentation audio publique et ne demande pas lui-même la permission.
const voice = await client.attachVoice(nativeVoicePort);
await voice.start();
// On logout or host teardown:
await voice.dispose();