Apakah kamu pernah berharap bisa 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 bisa implementasikan dengan cepat, tapi mendapatkan hasilnya ke tangan mereka untuk memvalidasi berarti mengirimkan update ke semua pengguna (risiko untuk perubahan eksperimental) atau membuat versi satu-satunya untuk pelanggan (pekerjaan untuk kedua kita).
Apa yang kurang adalah fleksibilitas. Pengembang ingin bisa menyajikan update yang berbeda-beda ke kelompok pengguna yang berbeda, seperti stakeholders non-teknis, QA, atau pengguna seluruhnya ketika tepat.
Tidak ada cara untuk memindahkan versi produksi ke versi kerja sama, mengumpulkan umpan balik, dan kemudian kembali ke produksi.
Itu yang channel surfing mengizinkan. Aplikasi yang terpasang di perangkat pengguna bisa memindahkan saluran update pada waktu runtime, mengubah aplikasi produksi menjadi ruang yang fleksibel untuk ulasan dan iterasi daripada titik akhir yang tetap. Ini sangat berguna untuk stakeholders non-teknis yang bekerja dengan aplikasi produksi, memungkinkan mereka untuk menguji perubahan dan memberikan umpan balik secara langsung di aplikasi yang sudah terpasang.
Pengertian Saluran Update
Saluran update adalah cara Capgo menargetkan update ke versi tertentu. Setiap versi terkait dengan saluran, dan saluran itu menentukan update apa yang akan diterima.
Contohnya, kamu bisa mempublikasikan update ke preview saluran tanpa mempengaruhi pengguna di productionDi masa lalu, mengganti saluran memerlukan menginstal build native yang berbeda atau mengubah pengaturan perangkat secara manual melalui dashboard.
Saluran dalam Capgo memungkinkan Anda:
- Mengarahkan kelompok pengguna tertentu dengan fitur yang berbeda
- Menggunakan A/B testing dengan mengasosiasikan pengguna ke saluran yang berbeda
- Mengeluarkan fitur-fitur baru secara bertahap
- Membuat program tes beta
- Mengatasi masalah debug pada pengguna individu
Jika Anda tidak familiar dengan saluran pembaruan, dokumentasi __CAPGO_KEEP_0__ Capgo channels documentation Apa itu Channel Surfing?
Channel surfing memungkinkan aplikasi yang terinstal untuk mengambil dari berbagai aliran pembaruan tanpa harus menginstal ulang. Aplikasi yang terinstal dapat mengganti saluran pembaruan secara waktu eksekusi, dan akan terus menerima pembaruan dari saluran yang dipilih baru hingga aplikasi di-uninstall atau diganti ke saluran lainnya.
Saluran dalam __CAPGO_KEEP_0__ memungkinkan Anda mengganti saluran pembaruan aplikasi tanpa harus menginstal ulang aplikasi.
Dalam prakteknya, hal ini berarti pemilik produk atau QA dapat mengganti sebuah production ke, misalnya, preview saluran, mencoba perubahan terbaru. Ketika mereka telah melakukan tes, mereka kembali ke production lagi. Tidak perlu melakukan reinstall atau membuat build preview terpisah.
Di bawah kerangka kerja, channel surfing bekerja dengan memungkinkan aplikasi memberitahu klien update 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 mengasosiasi sendiri" pada setiap saluran yang ingin Anda ganti di dashboard Capgo..
Tidak ada perubahan atau modifikasi konfigurasi Capgo yang diperlukan di luar itu. Di intinya, channel surfing dikendalikan oleh satu panggilan code:
Fungsi ini menetapkan saluran yang digunakan ketika melakukan kueri API untuk update.
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({ channel: 'your-channel' });
Capgo Belajar lebih lanjut tentang cara mengatur saluran API.
Switching Saluran 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): Permintaan dikirim ke Capgo backend untuk memvalidasi apakah saluran tersebut diizinkan
- Pengupdatean Penyimpanan Lokal: Jika validasi berhasil, saluran tersebut disimpan ke penyimpanan lokal perangkat
- Efek Instan: Periksa update selanjutnya menggunakan saluran baru segera
Sebelumnya, setChannel() Menyimpan pengaturan saluran 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 berikutnya. Pendekatan umum adalah memeriksa update secara langsung, mengunduhnya jika tersedia, dan memuat ulang aplikasi sehingga pengguna langsung berada di update saluran yang dipilih.
Alur yang biasanya seperti ini:
- Ganti saluran (
setChannel) - Pemeriksaan update (
getLatest) - Fetch dan terapkan update (
download,setataunext) - Memuat ulang aplikasi jika diperlukan (
reload)
Contoh lengkap seperti ini:
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');
Struktur alur ini ada di tangan Anda. Anda mungkin membagi langkah-langkah ini di beberapa interaksi atau menjalankannya secara bersamaan. Terlepas dari bagaimana Anda mengatur alur, pastikan untuk mempertimbangkan kegagalan. Masalah jaringan atau saluran yang tidak valid dapat mencegah update dari diterapkan.
Syarat Hanya Satu: Aktifkan Penugasan Otomatis
Hal ini satu-satunya hal yang perlu Anda lakukan untuk mengaktifkan navigasi saluran. Sebelum aplikasi Anda dapat beralih ke saluran menggunakan setChannel()anda harus mengaktifkan penugasan sendiri untuk saluran tersebut di dashboard Capgo:
- Buka bagian Saluran di dashboard Capgo Anda
- Klik nama saluran yang ingin Anda kelola
- Aktifkan “Izinkan perangkat untuk mengasosiasikan sendiri”
- Simpan perubahan

Itu saja. Tidak perlu mengubah konfigurasi di aplikasi Anda. defaultChannel Pengaturan diperlukan. Cukup aktifkan pengasasan sendiri pada saluran yang ingin pengguna dapat beralih.
Jika pengaturan ini dinonaktifkan, setiap upaya untuk memanggil setChannel() dengan saluran ini akan gagal dan channelPrivate acara akan terjadi.
Daftar Saluran yang Tersedia
Anda dapat mengambil daftar saluran yang tersedia untuk pengasasan sendiri:
const { channels } = await CapacitorUpdater.listChannels();
console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI
Hal ini hanya mengembalikan saluran-saluran di mana pengasasan sendiri diaktifkan.
Mendapatkan Saluran Saat Ini
Periksa saluran mana yang perangkat saat ini ditugaskan:
const { channel } = await CapacitorUpdater.getChannel();
console.log('Current channel:', channel);
Kembali ke Saluran Default
Untuk menghapus pengaturan saluran yang diubah dan kembali ke saluran default:
await CapacitorUpdater.unsetChannel({});
Hal ini melepas perangkat dari saluran yang diassign secara spesifik, menyebabkan perangkat kembali ke defaultChannel di konfigurasi Anda atau default cloud.
Bagaimana Cara Menguji Surfing Channel
Untuk melihat surfing channel dalam aksi, Anda memerlukan build rilis - @capgo/capacitor-updater API dirancang untuk build rilis. Di build debug, aplikasi biasanya memuat JavaScript dari server pengembangan, yang menghindari alur pembaruan normal.
Prasyarat
Satu-satunya persyaratan untuk surfing channel adalah mengaktifkan “Izinkan perangkat untuk mengasosiasi sendiri” pada setiap channel yang ingin Anda izinkan berganti. Tidak ada perubahan konfigurasi yang diperlukan di aplikasi Anda.
Membuat Build Uji
Buat aplikasi Anda seperti biasa:
bun run build && npx cap sync
Lalu buatlah build native Anda menggunakan Xcode atau Android Studio, atau gunakan pipeline CI/CD Anda. Aplikasi akan memulai pada channel yang ditetapkan sebagai default cloud di dashboard Anda Capgo.
Mengirimkan Pembaruan ke Berbagai Channel
Setelah aplikasi terpasang, publikasikan pembaruan ke berbagai saluran:
# 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 pembaruan dari saluran yang dipilih dan memuat ulang ke pembaruan baru.
Membangun UI Switcher Saluran
Saluran browsing biasanya ingin Anda terbatas pada pengguna tertentu, bukan pada semua pengguna yang menggunakan aplikasi. Misalnya, Anda mungkin memiliki tombol yang tersedia untuk karyawan yang terautentikasi saja yang mengubah 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>
);
}
Pembaruan OTA yang Membuat Kesalahan
Tidak ada yang spesifik untuk browsing saluran, tetapi mereka cenderung muncul dengan cepat ketika Anda mulai mengganti saluran secara waktu eksekusi.
Perbedaan Versi Waktu Eksekusi
Pembaruan di Capgo terkait dengan versi aplikasi native. Jika versi native dari pembaruan tidak cocok dengan versi native dari aplikasi yang terpasang, pembaruan tidak akan didownload atau diterapkan. Ketika browsing saluran, hal ini biasanya muncul sebagai aplikasi yang berganti saluran tapi tidak ada pembaruan yang diterapkan, meskipun ada di saluran tersebut.
Perlu diingat bahwa pembaruan tersebut mungkin dipublikasikan dari versi native aplikasi yang berbeda. Pastikan bundle saluran Anda kompatibel dengan versi native yang terpasang di perangkat.
Menghapus atau Membatalkan Pembaruan
Jika aplikasi telah mengunduh pembaruan untuk saluran, menghapus pembaruan dari Capgo dashboard tidak akan menghapusnya dari perangkat yang sudah memiliki pembaruan tersebut. Penghapusan hanya akan menghentikan masa depan unduhan.
Metode yang paling dapat diandalkan untuk membatalkan pembaruan yang buruk adalah dengan menerbitkan pembaruan yang sudah terbukti baik ke saluran yang sama. Hal ini menciptakan pembaruan baru di atas sejarah saluran, yang akan dianggap sebagai versi terbaru dan diterapkan secara otomatis.
Capgo juga menyediakan mekanisme rollback yang dapat menginstruksikan klien untuk menerapkan pembaruan stabil sebelumnya atau kembali ke pembaruan yang diintegrasikan ke 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, maka berganti-ganti saluran dapat menyebabkan masalah.
Contoh, jika pembaruan beta menerapkan migrasi database, maka versi produksi mungkin tidak memahami skema baru. Pengembang harus memastikan bahwa pembaruan mereka tetap aman untuk berganti-ganti atau membatasi berganti-ganti ke satu arah ketika diperlukan.
Mengapa Channel Surfing Meningkatkan Iterasi Mobile
Channel surfing sangat berguna ketika Anda membutuhkan waktu untuk memeriksa perubahan secara cepat di lingkungan produksi.
Pengujian Cepat
Bayangkan perbaikan bug yang mendesak yang membutuhkan pengujian sebelum diterapkan secara luas. Dengan channel surfing, perubahan dapat diisolasi ke dalam sekelompok pengguna yang ditunjuk untuk memeriksa perubahan sebelum mencapai produksi.
Pengujian Stakeholder
A pemilik produk atau QA dapat mengganti bangunan produksi yang terpasang ke saluran pembaruan lain, memverifikasi perbaikan atau fitur, dan kemudian kembali lagi setelah mereka selesai.
Uji Coba yang Dipercepat
Kasus Penggunaan
context: Halaman/area: Halaman pemasaran solusi Capgo. Peran: Judul bagian atau halaman. Dilihat di: halaman solusi/uji coba beta.astro. Kunci pesan `solutions_beta_testing_usecases_title` (Judul Kasus Penggunaan Uji Coba Beta Solusi). | Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI. Dilihat di: halaman solusi/qsr.astro. Kunci pesan `solutions_qsr_usecases_label` (Label Kasus Penggunaan Qsr Solusi).
- Uji Coba QA: Biarkan tim QA berganti antara cabang fitur
- Program Beta: Pengguna memilih saluran beta untuk akses awal
- Pengawasan Stakeholder: Pemilik produk memperlihatkan perubahan sebelum rilis
- Pengujian A/B: Tugaskan pengguna ke saluran yang berbeda untuk eksperimen
- Pengembangan: Ganti saluran pengguna tertentu ke saluran debug untuk mendiagnosis masalah
Penggabungan: Metode Perubahan Saluran
| Metode | Waktu Efek | Dimana Data Diperlukan | Penggunaan Kasus |
|---|---|---|---|
setChannel() context: 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 | Hanya perangkat (local) |
| Penggantian saluran pengguna yang diinisiasi pengguna dalam aplikasi ini secara langsung di dashboard perangkat | Maksimal 2 menit | Database Backend | Perubahan yang diinisiasi oleh administrator untuk perangkat tertentu |
| Pengaturan saluran API | Maksimal 2 menit | Database Backend | Integrasi backend yang diotomatisasi |
Untuk pengalaman pengguna yang terbaik ketika membangun UI channel-switching, selalu gunakan plugin’s setChannel() Praktik Terbaik
Batasi Akses
- : Channel surfing biasanya digunakan untuk keperluan internal - jangan terlalu banyak menggunakannyaPenggunaan Channel Surfing biasanya untuk keperluan internal - jangan terlalu banyak menggunakannya
- Menangani Kesalahan: Selalu tangani kesalahan dengan sopan ketika berganti saluran
- Validasi Kompabilitas: Pastikan pembaruan pada saluran yang berbeda kompatibel dengan versi native yang terpasang
- Dokumentasi Saluran: Simpan dokumentasi yang jelas tentang apa yang setiap saluran digunakan untuk
- Pantau Penggunaan: Ikuti perangkat mana yang berada di mana saluran untuk debugging
Sumber Daya
Kesimpulan
Penggunaan channel surfing mengubah cara Anda dapat beriterasi pada aplikasi Capacitor. Sebaliknya dari menganggap build produksi sebagai titik akhir yang tetap, mereka menjadi alat yang fleksibel untuk pengujian, validasi, dan iterasi yang cepat.
Dengan penggantian channel instan yang diperkenalkan dalam versi plugin terbaru, pengalaman sekarang menjadi lancar - pengguna dapat berganti channel dan menerima update dari channel baru tanpa menunggu periode tunggu.
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 Channel Update pada Waktu Jalannya
Jika Anda menggunakan Channel Surfing untuk Capgo: Cara Berganti Channel Update pada Waktu Jalannya untuk merencanakan routing channel dan peluncuran yang dipersiapkan, hubungkannya dengan Saluran context Saluran fitur Capgo untuk nama saluran rilis. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/label-putih.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Nilai Sel Visual Putih Label Solusi). 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.