Lompat ke konten

Statistik API

GitHub

Dari versi 1.3.0, sistem pembaruan dapat mengirimkan statistik!

Secara default, semua statistik dikirimkan 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"
}
}
}

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 mengaktifkannya secara total, dengan string kosong. Perlu diingat, statistik dibuat ramah privasi dan membantu saya memahami bagaimana orang menggunakan plugin, untuk menyelesaikan masalah dan memperbaikinya.

Tindakan yang diharapkan “tidak ada pembaruan”

Judul bagian “Tindakan yang diharapkan “tidak ada pembaruan””

Ketika endpoint pembaruan Anda memiliki No versi baruJika tidak ada versi baru, harusnya responsnya seperti ini:

{ "error": "no_new_version_available", "message": "No new version available" }

The error code haruslah tepat no_new_version_available. Versi dapat berupa apa saja (hanya untuk logging/debugging). Ini adalah perilaku yang diharapkan dan masih dikembalikan dengan HTTP message . Jika endpoint update Anda mengembalikan 200respon tanpa 200 , plugin akan menganggapnya sebagai gagal download dan mengirimkan urlstat. download_fail Contoh Implementasi

Contoh Implementasi

Contoh Implementasi

Contoh berikut menunjukkan penggunaan 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" }

Untuk deskripsi rinci semua kode aksi dan maknanya, silakan lihat dokumentasi debugging:

Statistik __CAPGO_KEEP_0__ untuk merencanakan dashboard dan operasi API, hubungkannya dengan Menggunakan @API/__CAPGO_KEEP_1__-updater untuk kemampuan asli di Menggunakan @capgo/capacitor-updater, untuk kemampuan asli di Menggunakan @capgo/capacitor-updater, API Ringkasan untuk detail implementasi di API Ringkasan, Pendahuluan untuk detail implementasi di Pendahuluan, API Kunci untuk detail implementasi di API Kunci, dan Perangkat untuk detail implementasi di Perangkat.