Statistiche API
Copiare un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Statistiche API
Sezione intitolata “Statistiche API”Partendo dalla versione 1.3.0 il sistema di aggiornamento è in grado di inviare statistiche!
Di default, tutte le statistiche vengono inviate al nostro server, per comprendere l'utilizzo e la ricerca.
Se desiderate inviare questi dati al vostro server, modificate la configurazione qui sotto:
// capacitor.config.json{ "appId": "**.***.**", "appName": "Name", "plugins": { "CapacitorUpdater": { "statsUrl": "YOUR_URL" } }}Struttura dei dati
Titolo della sezione ‘Struttura dei dati’Quello che il vostro server riceverà è:
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,}Potete anche disabilitarlo completamente, con una stringa vuota. Tenete presente che le statistiche sono trattate in modo riservato e mi aiutano a comprendere come le persone utilizzano il plugin, a risolvere problemi e migliorarlo.
Aspettato comportamento “nessun aggiornamento”
Sezione intitolata “Aspettato comportamento “nessun aggiornamento””Quando il tuo endpoint di aggiornamento ha nessuna nuova versione, dovrebbe rispondere con un payload di errore come:
{ "error": "no_new_version_available", "message": "No new version available" }Il error code deve essere esattamente no_new_version_available. Il message può essere qualsiasi stringa che desideri (è utilizzato solo per la registrazione/ debug). Questo è il comportamento previsto e viene ancora restituito con lo stato HTTP 200Se il tuo endpoint di aggiornamento restituisce invece una 200 risposta senza un urlEcco, il plugin lo tratterà come un fallimento di download e invierà un download_fail stat.
Esempio di Implementazione
Sottosezione intitolata “Esempio di Implementazione”Ecco un esempio di code in JavaScript per salvare le statistiche del 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' }}Questa endpoint dovrebbe restituire un JSON:
{ "status": "ok" }Per descrizioni dettagliate di tutti i codici di azione e i loro significati, si prega di consultare la documentazione di debug:
- Azioni inviate dal dispositivo: Vedi il la documentazione di debugging - Inviato dal dispositivo sezione
- Azioni inviate dal backend: Vedi il la documentazione di debugging - Inviato dal backend sezione
Continua da Statistiche API
Sezione intitolata “Continua da Statistiche API”Se stai utilizzando Statistiche API per pianificare il dashboard e le API operazioni, connettilo con Utilizzare @capgo/capacitor-aggiornatore per la capacità nativa in Utilizzare @capgo/capacitor-aggiornatore Panoramica di API per il dettaglio di implementazione in Panoramica di API Introduzione per il dettaglio di implementazione in Introduzione Chiavi di API per il dettaglio di implementazione in Chiavi di API, e Dispositivi per il dettaglio di implementazione in Dispositivi.