Apakah Anda pernah berharap dapat mengirimkan perubahan langsung ke pengguna tertentu untuk mendapatkan ulasan dan umpan balik mereka secara langsung - tanpa harus meminta mereka mengunduh dan menginstal versi baru dari TestFlight atau Google Play?
Saya pernah memiliki pelanggan yang meminta perbaikan yang saya dapatkan dengan cepat, tetapi mendapatkan hasilnya ke tangan mereka untuk memvalidasi berarti mengirimkan perbarui ke semua pengguna (risiko untuk perubahan eksperimental) atau membuat versi satu-satunya untuk pelanggan (pekerjaan untuk kedua-duanya).
Apa yang hilang adalah fleksibilitas. Pengembang ingin dapat menyajikan perbarui yang berbeda-beda kepada kelompok pengguna yang berbeda, seperti stakeholders non-teknis, QA, atau pengguna seluruhnya ketika sesuai.
Tidak ada cara untuk memindahkan versi produksi ke versi kerja sama, mengumpulkan umpan balik, dan kemudian kembali ke produksi.
Itu yang mengaktifkan channel surfing mengizinkan aplikasi yang diinstal pada perangkat pengguna dapat mengganti saluran perbarui pada waktu jalannya, mengubah aplikasi produksi menjadi ruang yang fleksibel untuk ulasan dan iterasi daripada titik akhir yang tetap.
Ini sangat berguna bagi stakeholders non-teknis yang bekerja dengan aplikasi produksi, memungkinkan mereka untuk menguji perubahan dan memberikan umpan balik secara langsung di aplikasi yang sudah diinstal.
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.
Contohnya, Anda dapat memublikasikan pembaruan ke sebuah preview tanpa mempengaruhi pengguna di productionSebelumnya, mengganti saluran memerlukan menginstal build native yang berbeda atau mengubah pengaturan perangkat secara manual melalui dashboard.
Sistem saluran di Capgo memungkinkan Anda:
- Mengarahkan kelompok pengguna tertentu dengan fitur yang berbeda
- Menggunakan uji coba A/B dengan mengasosiasikan pengguna ke saluran yang berbeda
- Mengeluarkan fitur baru secara bertahap
- Membuat program tes beta
- Mengatasi masalah produksi dengan pengguna individu
Jika Anda tidak familiar dengan saluran pembaruan, dokumentasi saluran __CAPGO_KEEP_0__ Capgo channels documentation __CAPGO_KEEP_0__
Apa itu Channel Surfing?
Channel surfing memungkinkan aplikasi yang terpasang untuk mengambil dari berbagai aliran pembaruan tanpa harus diinstal ulang. Aplikasi yang terpasang dapat berganti saluran pembaruan pada waktu runtime, dan akan terus menerima pembaruan dari saluran yang baru dipilih sampai aplikasi dihapus atau berganti ke saluran lain.
Dalam prakteknya, ini berarti pemilik produk atau QA dapat berganti sebuah production build ke, misalnya, sebuah preview saluran, mencoba perubahan terbaru. Ketika mereka selesai melakukan tes, mereka berganti kembali ke production tanpa perlu diinstal ulang atau membuat build preview terpisah.
Di bawah permukaan, channel surfing bekerja dengan memungkinkan aplikasi memberitahu klien pembaruan mana saluran yang harus digunakan. Pilihan tersebut dapat diubah pada waktu runtime dan tetap berlaku sampai dihapus atau diganti.
Cara Mengimplementasikan Channel Surfing
Sebelum Anda dapat mencoba channel surfing, project Anda harus dikonfigurasi dengan Capgo Live Updates. Untuk mengatur hal tersebut, ikuti panduan Capgo quickstart. Satu-satunya pengaturan yang diperlukan untuk channel surfing adalah mengaktifkan "Izinkan perangkat untuk berasosiasi sendiri" pada setiap saluran yang ingin Anda ganti di dashboard Capgo..
Tidak ada perubahan atau pengaturan Capgo yang diperlukan di luar itu. code
Di intinya, navigasi kanal adalah dikendalikan oleh satu panggilan API:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({ channel: 'your-channel' });
Panggilan ini menetapkan kanal yang digunakan ketika melakukan kueri Capgo untuk memperbarui. Pelajari lebih lanjut tentang metode setChannel API.
Penggantian Kanal Instan (v5.34.0+)
Mulai dari versi plugin 5.34.0, 6.34.0, 7.34.0, atau 8.0.0 (tergantung pada versi utamamu), setChannel() berfungsi dengan cara yang berbeda dan lebih cepat:
- Validasi Backend (saja baca saja): Permintaan dikirim ke backend Capgo untuk memvalidasi apakah kanal tersebut diizinkan
- Pembaruan Penyimpanan Lokal: Jika validasi berhasil, kanal tersebut disimpan ke penyimpanan lokal perangkat
- Efek Instan: Menggunakan update berikutnya akan langsung menggunakan saluran baru
Sebelumnya, setChannel() Menyimpan pengaturan saluran override ke database backend (seperti Dashboard atau API perubahan). Perangkat harus menunggu replikasi backend (sampai 2 menit) sebelum saluran baru diakui. perilaku baru hanya membaca dari backend (untuk validasi) dan menyimpan secara lokal, sehingga perubahan saluran menjadi instan.
Alur Penuh Switching Saluran
Untuk pengalaman pengguna yang lebih baik, Anda biasanya ingin melakukan lebih dari hanya mengganti saluran dan menunggu aplikasi restart. Pendekatan umum adalah memeriksa update secara langsung, mengunduh jika tersedia, dan memuat ulang aplikasi sehingga pengguna langsung berada di update saluran yang dipilih.
Alur yang Umum
- Mengubah saluran (
setChannel) - Mengatur update (
getLatest) - Mengunduh dan menerapkan update (
download,setataunext) - context
reload)
HTML text fragment from a longer Capgo UI string (parent key `alternatives_cta_questions`). Page/area: Capacitor live-update alternatives comparison page. Role: Long marketing or legal paragraph. Seen in: page alternatives.astro. Preserve Capgo product/brand and developer terms exactly. Message key `alternatives_cta_questions` (Alternatives CTA Questions). | HTML text fragment from a longer Capgo UI string (parent key `appflow_cta_questions`). Page/area: Appflow comparison / migration marketing copy. Role: Long marketing or legal paragraph. Seen in: page ionic-appflow.astro. Preserve Capgo product/brand and developer terms exactly. Message key `appflow_cta_questions` (Appflow CTA Questions). | HTML text fragment from a longer Capgo UI string (parent key `capwesome_cta_questions`). Page/area: Capawesome comparison page. Role: Long marketing or legal paragraph. Seen in: page capwesome.astro. Preserve Capgo product/brand and developer terms exactly. Message key `capwesome_cta_questions` (Capwesome CTA Questions). | HTML text fragment from a longer Capgo UI string (parent key `consulting_faq_subtitle`). Page/area: Consulting services page. Role: Section subtitle or tagline. Seen in: page consulting.astro. Preserve Capgo product/brand and developer terms exactly. Message key `consulting_faq_subtitle` (Consulting FAQ Subtitle). | Page/area: Appflow comparison / migration marketing copy. Role: Short UI label or navigation item. Seen in: page ionic-appflow.astro, page ionic-enterprise-plugins.astro, page solutions/ionic-enterprise-plugins.astro. Message key `appflow_plugins_or` (Appflow Plugins Or).
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');
Bagaimana Anda mengatur aliran ini adalah pilihan Anda. Anda mungkin membagi langkah-langkah ini di beberapa interaksi atau menjalankannya secara bersamaan. Terlepas dari bagaimana Anda mengatur aliran, pastikan untuk mempertimbangkan kegagalan. Masalah jaringan atau saluran yang tidak valid dapat mencegah pembaruan dari diterapkan.
Syarat Hanya Satu: Aktifkan Penugasan Sendiri
Ini adalah satu-satunya hal yang perlu Anda lakukan untuk mengaktifkan saluran surfing. Sebelum aplikasi Anda dapat berganti ke saluran menggunakan setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:
- Pergilah ke Saluran section in your Capgo dashboard
- Nama fitur saluran rilis Capgo. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Nilai Sel Visual Putih Label Solusi).
- bagian dalam Klik pada nama saluran yang ingin Anda kelola
- Aktifkan Penugasan Sendiri

Itu saja. Tidak ada perubahan konfigurasi yang diperlukan di aplikasi Anda. Tidak defaultChannel pengaturan yang diperlukan. Cukup aktifkan pengalihan sendiri pada saluran yang ingin pengguna dapat beralih ke.
Jika pengaturan ini dinonaktifkan, setiap upaya untuk memanggil setChannel() dengan saluran ini akan gagal dan channelPrivate akan mengirimkan acara.
Daftar Saluran yang Tersedia
Anda dapat mengambil daftar saluran yang tersedia untuk pengalihan sendiri:
const { channels } = await CapacitorUpdater.listChannels();
console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI
Saluran ini hanya akan mengembalikan saluran di mana pengalihan sendiri telah diaktifkan.
Mendapatkan Saluran yang Sedang Digunakan
Tentukan saluran mana yang perangkat sedang ditugaskan:
const { channel } = await CapacitorUpdater.getChannel();
console.log('Current channel:', channel);
Mengembalikan ke Saluran Default
Menghapus pengaturan saluran dan kembali ke saluran default:
await CapacitorUpdater.unsetChannel({});
Menghilangkan tautan perangkat dari saluran tertentu, sehingga membuatnya kembali ke saluran defaultChannel di konfigurasi Anda atau saluran default di cloud.
Bagaimana Cara Menguji Pemutaran Saluran
Menggunakan Pemutaran Saluran @capgo/capacitor-updater API is designed for release builds. In debug builds, the app typically loads JavaScript from a development server instead, which bypasses the normal update flow.
__CAPGO_KEEP_0__ dirancang untuk build rilis. Di build debug, aplikasi biasanya memuat JavaScript dari server pengembangan, yang menghindari alur pembaruan normal.
Persyaratan Satu-satunya persyaratan untuk pemutaran saluran adalah mengaktifkan “Mengizinkan perangkat untuk mengasosiasi sendiri”
pada setiap saluran yang ingin Anda izinkan untuk berganti. Tidak ada perubahan konfigurasi yang diperlukan di aplikasi Anda.
Membuat Build Uji Coba
bun run build && npx cap sync
Kemudian buatlah build asli menggunakan Xcode atau Android Studio, atau gunakan pipeline CI/CD Anda. Aplikasi akan memulai di saluran yang ditetapkan sebagai default di dashboard Anda Capgo.
Penerbitan Perbaruan ke Saluran yang Berbeda
Setelah aplikasi diinstal, penerbitkan perbaruan ke saluran yang berbeda:
# Publish to preview channel
npx @capgo/cli@latest bundle upload --channel preview
# Publish to production channel
npx @capgo/cli@latest bundle upload --channel production
Dari sana, navigasikan ke UI navigasi saluran di aplikasi dan aktifkan switch saluran. Aplikasi harus mengambil perbaruan dari saluran yang dipilih dan memuat ulang ke perbaruan baru.
Membangun UI Switcher Saluran
Saluran browsing biasanya ingin Anda terbatas pada pengguna tertentu, bukan pada semua pengguna yang menggunakan aplikasi Anda. Misalnya, Anda mungkin memiliki tombol yang tersedia untuk karyawan yang terautentikasi saja yang mengganti aplikasi ke saluran pratinjau.
Contoh Komponen React untuk Switcher Saluran:
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>
);
}
Peringatan Perbaruan OTA
Tidak ada yang spesifik untuk browsing saluran, tetapi mereka cenderung menjadi jelas setelah Anda memulai mengganti saluran secara waktu eksekusi.
Perbedaan Versi Waktu Eksekusi
Perbaruan di Capgo terkait dengan versi aplikasi asli. Jika versi asli dari perbaruan tidak sesuai dengan versi asli dari aplikasi yang diinstal, perbaruan tidak akan diunduh atau diterapkan. Ketika browsing saluran, hal ini biasanya muncul sebagai aplikasi yang berganti saluran tetapi tidak ada perbaruan yang diterapkan, meskipun ada di saluran tersebut.
Biasanya ini berarti perbaruan diterbitkan dari versi asli aplikasi yang berbeda. Pastikan bundle saluran Anda kompatibel dengan versi asli aplikasi yang diinstal di perangkat.
Membersihkan atau Membatalkan Perbaruan
Jika sebuah aplikasi telah mengunduh perbaruan untuk sebuah saluran, menghapus perbaruan tersebut dari Capgo dashboard tidak akan menghapusnya dari perangkat yang sudah memiliki perbaruan tersebut. Penghapusan hanya akan menghentikan pengunduhan masa depan.
Metode yang paling dapat diandalkan untuk membatalkan perbaruan yang salah adalah dengan menerbitkan perbaruan yang sudah terbukti baik ke saluran yang sama. Hal ini akan menciptakan perbaruan baru di atas sejarah saluran, yang akan dianggap sebagai versi terbaru dan diterapkan oleh klien sebaliknya.
Capgo juga menyediakan mekanisme rollback yang dapat menginstruksikan klien untuk menerapkan perbaruan sebelumnya yang stabil atau kembali ke perbaruan yang diintegrasikan dalam build.
Pertimbangan Migrasi Data
Mengganti saluran akan mengubah bundle JavaScript yang dijalankan oleh aplikasi. Jika aplikasi Anda bergantung pada migrasi atau bentuk data yang tidak kompatibel di antara saluran, mengganti-ganti saluran dapat menyebabkan masalah.
Contohnya, jika perbaruan beta menerapkan migrasi database, versi produksi mungkin tidak memahami skema baru. Pengembang harus memastikan bahwa perbaruan mereka tetap aman untuk berganti-ganti atau membatasi penggantian ke satu arah ketika diperlukan.
Mengapa Mengganti Saluran Meningkatkan Iterasi Mobile
Mengganti saluran sangat berguna ketika Anda perlu meninjau perubahan dengan cepat di lingkungan produksi.
Pengujian Cepat
Bayangkan perbaikan bug darurat yang memerlukan validasi sebelum diterapkan secara luas. Dengan channel surfing, perubahan dapat diisolasi pada sekelompok pengguna yang ditunjuk yang dapat memeriksa perubahan tersebut sebelum mencapai produksi.
Ulasan Stakeholder
Seorang pemilik produk atau QA dapat mengubah instalasi build produksi mereka ke saluran update lain, memverifikasi perbaikan atau fitur, dan kemudian kembali lagi setelah mereka selesai.
Pengujian yang Dipercepat
Perubahan ini membuat lebih mudah untuk melibatkan stakeholders non-teknis dalam ulasan dan pengambilan keputusan, sambil menjaga alur kerja tetap lancar. Sebuah build produksi tunggal menjadi alat yang fleksibel untuk pengujian, umpan balik, dan validasi.
Penggunaan Kasus
- context: Halaman/area: Halaman pemasaran solusi Capgo. Peran: Judul bagian atau halaman. Dilihat di: halaman solusi/pengujian-beta.astro. Kunci pesan `solutions_beta_testing_usecases_title` (Judul Penggunaan Kasus Pengujian Beta Solusi). | Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI. Dilihat di: halaman solusi/qsr.astro. Kunci pesan `solutions_qsr_usecases_label` (Label Penggunaan Kasus Qsr Solusi).Pengujian QA
- : Biarkan tim QA berganti antara cabang fiturProgram Beta
- : Pengguna memilih masuk ke saluran beta untuk akses awalUlasan Stakeholder
- A/B Testing: Mengalokasikan pengguna ke saluran yang berbeda untuk eksperimen
- Debugging: Mengalihkan pengguna tertentu ke saluran debug untuk mendiagnosis masalah
Perbandingan: Metode Perubahan Saluran
| Metode | Waktu Efek | Dimana Data Disimpan | Penggunaan Kasus |
|---|---|---|---|
setChannel() Konteks: Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/cordova-to-capacitor-ai.astro. Kunci pesan `solutions_cordova_to_capacitor_ai_table_use_case` (Solutions Cordova To Capacitor Ai Table Use Case). |
dari plugin | Instan (langsung di perangkat) | Switching Channel Pengguna di Aplikasi |
| Override Perangkat di Dashboard | Sampai dengan 2 menit | Database Backend | Perubahan Admin yang Ditargetkan untuk Perangkat Tertentu |
| Penugasan Channel API | Sampai dengan 2 menit | Database Backend | Integrasi Backend Otomatis |
Untuk pengalaman pengguna yang terbaik ketika membangun antarmuka pengguna switching channel, selalu gunakan metode plugin. setChannel() Praktik Terbaik
Penggunaan Channel yang Dapat Diubah oleh Pengguna
- Mengatur Akses: Biasanya, navigasi antar saluran digunakan untuk pengguna internal - jangan terlalu banyak menggunakannya
- Menangani Kesalahan: Selalu tangani kesalahan dengan baik ketika mengganti saluran
- Memastikan Kompatibilitas: Pastikan pembaruan pada saluran yang berbeda kompatibel dengan versi native yang terpasang
- Dokumentasi Saluran: Simpanlah dokumentasi yang jelas tentang apa saja yang dilakukan oleh setiap saluran
- Pantau Penggunaan: Ikuti perangkat mana yang menggunakan saluran mana untuk debugging
Sumber Daya
- : Capgo Live Updates Dokumentasi
- Referensi Dokumentasi Kanal
- Referensi Plugin API
- Capgo CLI Perintah
Kesimpulan
Channel surfing mengubah cara Anda dapat beriterasi pada aplikasi Capacitor. Sebaliknya dari menganggap build produksi sebagai titik akhir yang tetap, mereka menjadi alat fleksibel untuk pengujian, validasi, dan iterasi cepat.
Dengan channel switching instan yang diperkenalkan dalam versi plugin terbaru, pengalaman sekarang sudah mulus - pengguna dapat berganti kanal dan langsung menerima update dari kanal baru tanpa menunggu periode apa pun.
Apakah Anda sedang memvalidasi perbaikan bug dengan stakeholder, menjalankan program beta, atau menguji masalah dengan pengguna tertentu, channel surfing memberikan fleksibilitas untuk mengirimkan update yang tepat kepada pengguna yang tepat pada waktu yang tepat.
Teruskan dari Channel Surfing untuk Capgo: Cara Berganti Kanal Update pada Waktu Jalannya
Jika Anda menggunakan Channel Surfing untuk Capgo: Cara Berganti Kanal Update pada Waktu Jalannya untuk merencanakan routing kanal dan peluncuran yang dipersiapkan, hubungkannya dengan Kanal-Kanal untuk detail implementasi di Channel, Channel untuk detail implementasi di Channel, Channel untuk detail implementasi di Channel, Pengujian Beta untuk alur produk di Pengujian Beta, dan Pengaturan Versi untuk alur produk di Pengaturan Versi.