Statistiques API
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Statistiques API
Section intitulée “Statistiques API”À partir de la version 1.3.0, le système d'actualisation est capable d'envoyer des statistiques !
Par défaut, toutes les statistiques sont envoyées à notre serveur, afin de comprendre l'utilisation et de la recherche.
Si vous souhaitez envoyer ces données à votre serveur au lieu de cela, modifiez la configuration ci-dessous :
// capacitor.config.json{ "appId": "**.***.**", "appName": "Name", "plugins": { "CapacitorUpdater": { "statsUrl": "YOUR_URL" } }}Structure de données
Titre de la section « Structure de données »Ce que votre serveur recevra est :
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,}Vous pouvez également le désactiver complètement, avec une chaîne vide. N'oubliez pas que les statistiques sont conçues pour être amicales et m'aident à comprendre comment les gens utilisent le plugin, pour résoudre les problèmes et l'améliorer.
Comportement attendu « sans mise à jour »
Titre de la section « Comportement attendu « sans mise à jour » »Lorsque votre point de terminaison de mise à jour a pas de nouvelle version, il devrait répondre avec un payload d'erreur comme :
{ "error": "no_new_version_available", "message": "No new version available" }Le error code doit être exactement no_new_version_available. Le message peut être n'importe quel chaîne que vous voulez (ce n'est que pour l'écriture dans les logs/débogage). C'est le comportement attendu et il est toujours retourné avec HTTP 200. Si votre endpoint de mise à jour renvoie au lieu une 200 réponse sans un url, le plugin traitera cela comme un échec de téléchargement et enverra un download_fail stat.
Exemple d'implémentation
Section intitulée « Exemple d'implémentation »Voici un exemple de code en JavaScript pour enregistrer les statistiques du 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' }}Cette fin de pointe devrait retourner un JSON :
{ "status": "ok" }Pour des descriptions détaillées de tous les codes d'action et de leurs significations, veuillez vous référer à la documentation de débogage :
- Actions envoyées depuis le dispositif : Consultez la documentation de débogage - Envoyées depuis le dispositif section
- Actions envoyés depuis l'arrière-plan: Consultez la documentation de débogage - Envoyés depuis l'arrière-plan section
Continuez depuis la section Statistiques API
Section titled “Keep going from Statistics API”Statistiques __CAPGO_KEEP_0__ pour planifier votre tableau de bord et les opérations API, connectez-le à Utilisez @API/__CAPGO_KEEP_1__-moteur de mise à jour pour la capacité native dans Utilisez @capgo/capacitor-moteur de mise à jour, Si vous utilisez Statistics capgo pour planifier votre tableau de bord et les opérations capgo, connectez-le à Using @capgo/capacitor-updater pour la capacité native dans Using @capgo/capacitor-updater API Aperçu pour les détails d'implémentation dans API Aperçu, Introduction pour les détails d'implémentation dans Introduction, API Clés pour les détails d'implémentation dans API Clés, et Appareils pour les détails d'implémentation dans Appareils.