Statistics API
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Statistics API
Bagian berjudul “Statistik API”Mulai dari versi 1.3.0 sistem pembaruan dapat mengirimkan statistik!
Secara 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:
// capacitor.config.json{ "appId": "**.***.**", "appName": "Name", "plugins": { "CapacitorUpdater": { "statsUrl": "YOUR_URL" } }}Struktur Data
Section titled “Data Structure”Judul bagian ‘Struktur Data’
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,}You can also totally disable it, with an empty string. Keep in mind, statistics are made private friendly and help me to understand how people use the plugin, to resolve issues and improve it.
Tindakan yang Diharapkan Ketika Tidak Ada Perbarui
Tidak Ada Perbaruan yang DiharapkanKetika endpoint pembaruan Anda memiliki tidak ada versi baru, maka harus merespons dengan payload kesalahan seperti:
{ "error": "no_new_version_available", "message": "No new version available" }context error code harus tepat no_new_version_availableKatakanlah message Dapat berupa string apa saja yang Anda inginkan (hanya untuk logging/debugging). Ini adalah perilaku yang diharapkan dan masih dikembalikan dengan HTTP. 200Jika endpoint update Anda mengembalikan sebuah 200 Tanggapan tanpa data statistik urlGagal download, plugin akan menganggapnya sebagai kegagalan download dan mengirimkan. download_fail stat.
Contoh Implementasi
Bab berjudul “Contoh Implementasi”Berikut adalah contoh code dalam JavaScript untuk menyimpan statistik plugin:
interface AppInfos { version_name: string action: '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' | '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' | 'disablePlatformElectron' | 'disableProdBuild' | 'disableDevice' | 'customIdBlocked' | 'cannotGetBundle' | 'checksum_fail' | 'checksum_required' | 'NoChannelOrOverride' | 'setChannel' | 'getChannel' | 'rateLimited' | 'disableAutoUpdate' | 'keyMismatch' | 'ping' | 'InvalidIp' | 'blocked_by_server_url' | 'download_manifest_start' | 'download_manifest_complete' | 'download_zip_start' | 'download_zip_complete' | 'download_manifest_file_fail' | 'download_manifest_checksum_fail' | 'download_manifest_brotli_fail' | 'backend_refusal' | 'app_crash' | 'app_crash_native' | 'app_anr' | 'app_killed_low_memory' | 'app_killed_excessive_resource_usage' | 'app_initialization_failure' | 'app_memory_warning' | 'webview_javascript_error' | 'webview_unhandled_rejection' | 'webview_resource_error' | 'webview_security_policy_violation' | 'webview_unclean_restart' | 'webview_render_process_gone' | 'webview_content_process_terminated' | 'os_version_changed' | 'native_app_version_changed' | 'download_0' 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" }Actions
Section titled “Actions”Untuk deskripsi rinci tentang semua kode aksi dan maknanya, silakan lihat dokumentasi debugging:
- Aksi yang dikirim dari perangkatLihat detailnya Dokumentasi debugging - Dikirim dari perangkat Dokumen
- Aksi dikirim dari backend: Lihat dokumen Dokumentasi debugging - Dikirim dari backend Dokumen
Teruskan dari Statistik API
Bab berjudul “Teruskan dari Statistik API”Jika Anda menggunakan Statistik API untuk merencanakan dashboard dan API operasi, hubungkannya dengan Gunakan @capgo/capacitor-updater untuk kemampuan asli di Gunakan @capgo/capacitor-updater, Ringkasan @API untuk detail implementasi di Ringkasan @API, Pendahuluan untuk detail implementasi di Pendahuluan, Kunci @API untuk detail implementasi di Kunci @API, dan Perangkat Untuk detail implementasi di Perangkat.