Statistik API
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Statistik API
Bagian berjudul “Statistik API”Dari versi 1.3.0, sistem pembaruan dapat mengirimkan statistik!
Dengan default, semua statistik dikirim ke server kami, untuk memahami penggunaan dan penelitian.
Jika Anda ingin mengirimkan data ini ke server Anda, ubah konfigurasi di bawah ini:
// capacitor.config.json{ "appId": "**.***.**", "appName": "Name", "plugins": { "CapacitorUpdater": { "statsUrl": "YOUR_URL" } }}Struktur Data
Judul bagian “Struktur Data”Apa yang akan diterima server Anda adalah:
interface AppInfosStats { "action": "set", // can be set, delete, set_fail, reset, revert // Then it's the same info as update "app_id": "**.***.**", // app identifier in the store "device_id": "*******", // unique id per app install "platform": "ios", // or android, or electron "custom_id": "user_1", // represent your user "version_name": "1.2.3", // version of the web build "version_build": "1.2.0", // version of the native build "version_code": "120", // build number of the native build "version_os": "16", // OS version of the device "plugin_version": "4.0.0"// to make your api behave differently with different plugins "is_emulator": false, "is_prod": false,}Anda juga dapat menonaktifkannya secara total, dengan string kosong. Perlu diingat, statistik dibuat ramah privasi dan membantu saya untuk memahami bagaimana orang menggunakan plugin, untuk menyelesaikan masalah dan memperbaikinya.
Tindakan yang diharapkan “tidak ada update”
Judul bagian “Tindakan yang diharapkan “tidak ada update””Ketika endpoint update Anda memiliki tidak ada versi barumaka harus merespons dengan payload kesalahan seperti:
{ "error": "no_new_version_available", "message": "No new version available" }The error code harus tepatnya no_new_version_available. The message dapat berupa string apa saja yang kamu inginkan (hanya untuk logging/debugging). Ini adalah perilaku yang diharapkan dan masih dikembalikan dengan HTTP 200. Jika endpoint update kamu mengembalikan 200 response tanpa sebuah url, plugin akan menganggapnya sebagai gagal download dan mengirimkan download_fail stat.
Contoh Implementasi
Bagian berjudul “Contoh Implementasi”Berikut adalah contoh code di JavaScript untuk menyimpan statistik plugin:
interface AppInfos { version_name: string action: 'ping' | 'delete' | 'reset' | 'set' | 'get' | 'set_fail' | 'update_fail' | 'download_fail' | 'windows_path_fail' | 'canonical_path_fail' | 'directory_path_fail' | 'unzip_fail' | 'low_mem_fail' | 'download_10' | 'download_20' | 'download_30' | 'download_40' | 'download_50' | 'download_60' | 'download_70' | 'download_80' | 'download_90' | 'download_complete' | 'download_manifest_start' | 'download_manifest_complete' | 'download_zip_start' | 'download_zip_complete' | 'download_manifest_file_fail' | 'download_manifest_checksum_fail' | 'download_manifest_brotli_fail' | 'decrypt_fail' | 'app_moved_to_foreground' | 'app_moved_to_background' | 'uninstall' | 'needPlanUpgrade' | 'missingBundle' | 'noNew' | 'disablePlatformIos' | 'disablePlatformAndroid' | 'disableAutoUpdateToMajor' | 'cannotUpdateViaPrivateChannel' | 'disableAutoUpdateToMinor' | 'disableAutoUpdateToPatch' | 'channelMisconfigured' | 'disableAutoUpdateMetadata' | 'disableAutoUpdateUnderNative' | 'disableDevBuild' | 'disableEmulator' | 'cannotGetBundle' | 'checksum_fail' | 'NoChannelOrOverride' | 'setChannel' | 'getChannel' | 'rateLimited' | 'disableAutoUpdate' | 'InvalidIp' | 'keyMismatch' | 'blocked_by_server_url' version_build: string version_code: string version_os: string plugin_version: string platform: string app_id: string device_id: string custom_id?: string is_prod?: boolean is_emulator?: boolean}
export const handler: Handler = async (event) => { const body = JSON.parse(event.body || '{}') as AppInfos const { platform, app_id, action, version_code, version_os, device_id, version_name, version_build, plugin_version, } = body console.log('update asked', platform, app_id, action, version_os, version_code, device_id, version_name, version_build, plugin_version) // Save it in your database return { status: 'ok' }}Endpoint ini harus mengembalikan JSON:
{ "status": "ok" }Untuk deskripsi rinci semua kode aksi dan maknanya, silakan lihat dokumentasi debugging:
- Aksi yang dikirim dari perangkat: Lihat dokumentasi debugging - Dikirim dari perangkat bagian Aksi yang dikirim dari backend
- : Lihat dokumentasi debugging - Dikirim dari backendbagian debugging dokumentasi - Dikirim dari backend bagian