Allez directement au contenu principal
Tutoriel

Surfacer les canaux pour Capgo: Comment passer d'un canal d'actualisation à un autre en temps réel

Envoyez des modifications à des utilisateurs spécifiques instantanément avec la mise à jour de canal de Capgo en temps de exécution. Passer entre les canaux de mise à jour sans réinstaller votre application Capacitor.

Crédits de l'article

Martin Donadieu

Auteur

Valeria

Relecteur

Jordan

Éditeur

Channel Surfing pour Capgo: Comment passer d'un canal d'actualisation à un autre en temps réel

Vous avez peut-être souhaité envoyer une modification directement à un utilisateur pour qu'il puisse la consulter et la commenter immédiatement sans avoir à télécharger et installer une nouvelle version depuis TestFlight ou Google Play ?

J'ai eu des clients qui demandaient des améliorations que j'ai pu mettre en œuvre rapidement, mais pour obtenir les résultats dans leurs mains pour les valider, il fallait envoyer une mise à jour à tous les utilisateurs (risqué pour une modification expérimentale) ou créer une version spécifique pour le client (un travail pour nous deux).

Ce qui manquait, c'était de la flexibilité. Les développeurs voulaient pouvoir servir des mises à jour différentes à différents groupes d'utilisateurs, comme les parties prenantes non techniques, la QA ou l'ensemble de la base d'utilisateurs lorsqu'il était approprié.

Il n'y avait pas de moyen pour une version de production de passer à une version en cours de travail, recueillir des retours et revenir ensuite à la production.

C'est ce que le channel surfing permet. Une application installée sur un appareil utilisateur peut passer d'un canal d'actualisation à un autre en temps réel, transformant une application de production en un espace flexible pour la revue et l'itération plutôt qu'un point final fixe. C'est particulièrement utile pour les parties prenantes non techniques travaillant avec des applications de production, leur permettant de tester des modifications et de donner des commentaires directement dans l'application qu'ils ont déjà installée.

Comprendre les canaux d'actualisation

Update channels are how Capgo targets updates to specific builds. Each build is associated with a channel, and that channel determines which updates it will receive.

Par exemple, vous pouvez publier des mises à jour dans un preview sans affecter les utilisateurs sur productionAu passé, le basculement de canaux nécessitait l'installation d'une version native différente ou la modification manuelle des affectations de dispositifs via le tableau de bord.

Les canaux dans Capgo vous permettent de :

  • Target specific user groups with different features
  • Exécuter des tests A/B en affectant les utilisateurs à différents canaux
  • Lancer progressivement de nouvelles fonctionnalités
  • Créer des programmes de test bêta
  • Debug production issues with individual users

Si vous n'êtes pas familier avec les canaux d'actualisation, le documente les canaux de Capgo en détail. détailles supplémentaires.

Qu'est-ce que la navigation entre les canaux ?

La navigation entre les canaux permet à une application installée de récupérer des flux de mise à jour différents sans avoir à réinstaller l'application. Une application installée peut changer de canal de mise à jour en temps de exécution, et elle continuera à recevoir des mises à jour du nouveau canal sélectionné jusqu'à ce que l'application soit désinstallée ou changée de canal.

Un propriétaire de produit ou un responsable QA peut basculer production construction vers, par exemple, un preview canaux, essayer les dernières modifications. Lorsqu'ils ont terminé de tester, ils switchent de nouveau vers production encore. Il n'est pas nécessaire de réinstaller ou de créer une version de prévisualisation séparée.

Sous le capot, la navigation entre les canaux fonctionne en permettant à l'application de dire au client de mise à jour quel canal utiliser. Cette choix peut être changé en temps de exécution et reste en vigueur jusqu'à ce qu'il soit effacé ou remplacé.

Comment mettre en œuvre la navigation entre les canaux

Avant de pouvoir essayer la navigation entre les canaux, votre projet doit être configuré avec les Mises à jour en direct de Capgo. Pour configurer cela, suivez les étapes. La seule configuration requise pour la navigation entre les canaux est d'activer « Autoriser les appareils à se lier automatiquement » sur chaque canal que vous souhaitez switcher dans le tableau de bord Capgo..

The only setup required for channel surfing is enabling “Allow devices to self associate” on each channel you want to switch to in the Capgo dashboard. No code changes or config modifications needed beyond that.

At son cœur, la navigation entre les canaux est impulsée par une seule appelle API :

import { CapacitorUpdater } from '@capgo/capacitor-updater';

await CapacitorUpdater.setChannel({ channel: 'your-channel' });

Cela définit le canal utilisé lors de la recherche de mises à jour Capgo. En savoir plus sur la méthode setChannel API.

Switch Channel Instantané (à partir de v5.34.0)

À partir de la version du plugin 5.34.0, 6.34.0, 7.34.0 ou 8.0.0 (dans votre version majeure) setChannel() Validation côté serveur (lecture seule)

  1. Validation de backend (lecture seule): Une requête est envoyée vers l'arrière-plan Capgo pour valider que le canal est autorisé
  2. Mise à jour de stockage localSi la validation passe, le canal est sauvegardé dans le stockage local du dispositif.
  3. Effet instantané: La prochaine vérification de mise à jour utilise immédiatement le nouveau canal

Jusqu'alors, setChannel() enregistrait la surcharge de canal dans la base de données backend (comme le tableau de bord ou les modifications de API). Les appareils devaient attendre la réplication backend (jusqu'à 2 minutes) avant que le nouveau canal soit reconnu. Le nouveau comportement ne lit que dans le backend (pour la validation) et stocke localement, ce qui rend les changements de canal instantanés.

Flux de changement de canal complet

Pour une meilleure expérience utilisateur, vous voulez généralement faire plus que simplement changer le canal et attendre la prochaine redémarrage de l'application. Une approche courante consiste à vérifier immédiatement les mises à jour, à les télécharger si disponibles et à recharger l'application afin que l'utilisateur se retrouve directement sur la mise à jour sélectionnée du canal.

Un flux typique ressemble à ceci :

  1. Changer de canal (setChannel)
  2. Vérifier une mise à jour (getLatest)
  3. Télécharger et appliquer la mise à jour (download, set ou next)
  4. Rafraîchir l'application si nécessaire.reload)

Recharger l'application si nécessaire (

import { CapacitorUpdater } from '@capgo/capacitor-updater';

async function switchChannel(selectedChannel: string) {
  try {
    // 1. Set the updates channel (with optional auto-update trigger)
    await CapacitorUpdater.setChannel({
      channel: selectedChannel,
      triggerAutoUpdate: true // Immediately check for updates
    });

    console.log(`Switched to channel: ${selectedChannel}`);

    // If you want more control, handle the update manually:
    // const latest = await CapacitorUpdater.getLatest();
    // if (latest.url) {
    //   const bundle = await CapacitorUpdater.download({
    //     url: latest.url,
    //     version: latest.version
    //   });
    //   await CapacitorUpdater.set({ id: bundle.id });
    // }

  } catch (error) {
    console.error('Failed to switch channel:', error);
  }
}

// Switch to the beta channel
switchChannel('beta');

La structure de ce flux vous appartient. Vous pouvez diviser ces étapes en plusieurs interactions ou les exécuter toutes à la fois. Quelle que soit la structure du flux, assurez-vous de tenir compte des échecs. Les problèmes de réseau ou un canal non valide peuvent empêcher une mise à jour d'être appliquée.

La Seule Exigence : Activer l'Affectation Auto

C'est la seule chose dont vous avez besoin pour activer la navigation entre les canaux. Before your app can switch to a channel using setChannel()Vous devez activer la réaffectation automatique pour ce canal dans l’interface de gestion Capgo.

  1. Allez à la Channels section de votre tableau de bord Capgo
  2. “Autoriser les appareils à se lier automatiquement”
  3. Enable section des canaux dans votre
  4. Enregistrer les modifications

Activer l'auto-assignation dans les paramètres du canal

That’s it. No config changes needed in your app. No defaultChannel Aucune configuration requise. Il suffit d'activer l'auto-assignation sur les canaux auxquels les utilisateurs doivent pouvoir passer.

Si ce paramètre est désactivé, toute tentative de mise en appel setChannel() Lister les canaux disponibles channelPrivate L'événement se déclenchera.

Liste des canaux disponibles

Vous pouvez récupérer la liste des canaux disponibles pour une affectation automatique :

const { channels } = await CapacitorUpdater.listChannels();

console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI

Vérifiez le canal auquel le dispositif est actuellement assigné :

Revenir au canal par défaut

Vérifiez quel canal le dispositif est actuellement affecté à :

const { channel } = await CapacitorUpdater.getChannel();

console.log('Current channel:', channel);

Revenir au canal par défaut

Pour supprimer la surcharge de canal et revenir à la valeur par défaut :

await CapacitorUpdater.unsetChannel({});

Cela débranche l'appareil de tout canal spécifiquement affecté, ce qui le fait retomber sur le defaultChannel in your config or the cloud default.

Comment tester la navigation entre les canaux

Pour voir le channel surfing en action, vous aurez besoin d'une version de production - la @capgo/capacitor-updater API est conçu pour les versions de sortie. Dans les versions de débogage, l'application charge généralement du JavaScript à partir d'un serveur de développement au lieu de cela, ce qui contourne le flux de mise à jour normal.

Prerequisites

La seule exigence pour la navigation entre les canaux est d'activer “Allow devices to self associate” on each channel you want to allow switching to. No config changes are needed in your app.

Créer une version de test

Construirez votre application comme d'habitude :

bun run build && npx cap sync

Créez ensuite vos builds natifs à l'aide de Xcode ou d'Android Studio, ou utilisez votre pipeline CI/CD. L'application commencera sur le canal défini par défaut dans votre tableau de bord Capgo.

Publier des mises à jour dans différents canaux

Une fois l'application installée, publiez des mises à jour sur différents canaux :

# Publish to preview channel
npx @capgo/cli@latest bundle upload --channel preview

# Publish to production channel
npx @capgo/cli@latest bundle upload --channel production

À partir de là, naviguez vers votre interface de navigation de canaux dans l'application et déclenchez le basculement de canal. L'application devrait récupérer la mise à jour du canal sélectionné et se recharger dans la nouvelle mise à jour.

Construire une Interface de Basculement de Canal

Le surf de canal est généralement quelque chose que vous souhaitez exposer à un ensemble limité d'utilisateurs, et non à tous les utilisateurs de votre application. Par exemple, vous pourriez avoir un bouton disponible uniquement pour les employés authentifiés qui bascule l'application vers le canal de prévisualisation.

Voici un exemple de composant React pour un basculement de canal :

import { useState, useEffect } from 'react';
import { CapacitorUpdater } from '@capgo/capacitor-updater';

export function ChannelSwitcher() {
  const [currentChannel, setCurrentChannel] = useState<string>('');
  const [availableChannels, setAvailableChannels] = useState<string[]>([]);
  const [isLoading, setIsLoading] = useState(false);

  useEffect(() => {
    loadChannelInfo();
  }, []);

  async function loadChannelInfo() {
    const { channel } = await CapacitorUpdater.getChannel();
    setCurrentChannel(channel || 'default');

    const { channels } = await CapacitorUpdater.listChannels();
    setAvailableChannels(channels.map(c => c.name));
  }

  async function handleChannelSwitch(channel: string) {
    setIsLoading(true);
    try {
      await CapacitorUpdater.setChannel({
        channel,
        triggerAutoUpdate: true
      });
      setCurrentChannel(channel);
      // App will update in background or on next restart
    } catch (error) {
      console.error('Failed to switch channel:', error);
    } finally {
      setIsLoading(false);
    }
  }

  return (
    <div>
      <p>Current channel: {currentChannel}</p>
      <div>
        {availableChannels.map(channel => (
          <button
            key={channel}
            onClick={() => handleChannelSwitch(channel)}
            disabled={isLoading || channel === currentChannel}
          >
            Switch to {channel}
          </button>
        ))}
      </div>
    </div>
  );
}

Mises à jour OTA à surveiller

Aucun de ces n'est spécifique à la navigation entre chaînes, mais ils deviennent rapidement apparents dès que vous commencez à basculer entre les chaînes en temps de exécution.

Mismatches de Versions de Runtime

Les mises à jour dans Capgo sont liées aux versions natives des applications. Si la version native d'une mise à jour ne correspond pas à la version native de l'application installée, la mise à jour ne sera pas téléchargée ou appliquée. Lorsque vous surferez entre les canaux, cela se manifeste généralement par l'application qui bascule entre les canaux mais sans mise à jour appliquée, même si une mise à jour existe sur ce canal.

Cela signifie généralement que la mise à jour a été publiée à partir d'une version native différente de l'application. Assurez-vous que le bundle de votre canal est compatible avec la version native installée sur le dispositif.

Supprimer ou Annuler les Mises à Jour

Si une application a déjà téléchargé une mise à jour pour un canal, supprimer cette mise à jour du tableau de bord Capgo n'en supprime pas la version sur les appareils qui l'ont déjà. future downloads.

The most reliable way to undo a bad update is to publish a known-good update to the same channel. This creates a new update at the top of the channel’s history, which clients will treat as the latest version and apply instead.

Capgo fournit également un mécanisme de reversion qui peut instruire les clients à réappliquer une mise à jour stable précédente ou à revenir à la mise à jour intégrée dans la build.

Considérations de Migration de Données

Switching channels changes the JavaScript bundle the app runs. If your app depends on migrations or data shapes that are not compatible across channels, switching back and forth may cause issues.

For example, if a beta update applies a database migration, the production version might not understand the new schema. Developers should ensure their updates remain safe to switch between or restrict switching to one direction when needed.

Pourquoi la navigation entre les canaux améliore l'itération mobile

Naviguer entre les canaux est particulièrement utile lorsque vous devez examiner les modifications rapidement dans un environnement de production.

Validation Rapide

Imaginez une correction urgente de bogues qui nécessite une validation avant d'être déployée largement. Avec la navigation entre les canaux, la modification peut être isolée à un petit ensemble d'utilisateurs désignés qui peuvent la réviser avant qu'elle ne rejoigne la production.

Révision des parties prenantes

Un propriétaire de produit ou un responsable de la qualité peut basculer leur build de production installé vers un autre canal de mise à jour, vérifier la correction ou la fonctionnalité, et basculer à nouveau une fois qu'ils ont terminé.

Testage simplifié

Cela facilite l'implication des parties prenantes non techniques dans la révision et la prise de décision, tout en maintenant le flux de travail fluide. Un seul build de production devient une outil flexible pour le testage, les retours d'information et la validation.

Utilisations

  • Test de Qualité: L’équipe QA peut basculer entre les branches de fonctionnalités
  • Programmes bêta: Les utilisateurs optent pour le canal bêta pour un accès précoce
  • Révision des parties prenantes: Product owners preview changes before release
  • Test de variationAttribuer les utilisateurs à différents canaux pour les expériences
  • DébogageSwitcher un utilisateur spécifique à un canal de débogage pour diagnostiquer les problèmes

Comparaison : Méthodes de changement de canal

Méthode Temps d'effet Enregistré où Utilisation
setChannel() context Instant Appareil uniquement (local) La mise à jour du canal par l'utilisateur en application
Survol de la console Jusqu'à 2 min Base de données backend Mises à jour administratives pour des appareils spécifiques
API affectation de canal Jusqu'à 2 min Base de données backend Intégrations backend automatiques

Pour une expérience utilisateur optimale lors de la création d'interfaces de basculement de canal, utilisez toujours le plugin. setChannel() method.

Pratiques recommandées

  1. Contrôle d'accès: Channel surfing is usually for internal use - don’t expose it to all users
  2. Gestion des erreursGérer les erreurs avec souplesse lors des changements de canal
  3. Vérification de compatibilité: Assurez-vous que les mises à jour de différents canaux sont compatibles avec la version native installée
  4. Documentation des canaux: Documentez clairement les objectifs de chaque canal
  5. Suivi de l'utilisation: Suivez les appareils qui sont sur lesquels les canaux pour le débogage

Ressources

Conclusion

La navigation entre les canaux transforme la façon dont vous pouvez itérer sur votre application Capacitor. Au lieu de considérer les builds de production comme des points d'entrée fixes, ils deviennent des outils flexibles pour la test, la validation et l'itération rapide.

Avec le changement de canal instantané introduit dans les dernières versions de plugin, l'expérience est maintenant fluide - les utilisateurs peuvent passer d'un canal à l'autre et recevoir immédiatement des mises à jour du nouveau canal sans période d'attente.

Que vous soyez en train de valider les correctifs de bogues avec les parties prenantes, de lancer des programmes de bêta ou de déboguer des problèmes avec des utilisateurs spécifiques, la navigation entre les canaux vous donne la flexibilité de livrer la mise à jour appropriée à l'utilisateur approprié au moment approprié.

Continuez de Channel Surfing pour Capgo: Comment passer d'une chaîne d'actualisation à une autre en temps réel

Si vous utilisez Navigation entre canaux pour Capgo: Comment passer d'un canal à l'autre en temps réel pour planifier la routage de canal et la mise en œuvre étalée, connectez-l’avec Canaux pour les détails d'implémentation dans les canaux, Canal pour les détails d'implémentation dans les canaux, Canal pour les détails d'implémentation dans les canaux, Solution de test bêta pour le flux de travail du produit dans la Solution de Test Beta. Solution de ciblage de version pour le flux de travail du produit dans la Solution de ciblage de version.

Mises à jour instantanées pour les applications Capacitor

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

Support humain de Martin

Commencez dès maintenant

Dernières actualités de notre Blog

Capgo vous offre les meilleures informations nécessaires pour créer une application mobile véritablement professionnelle.