Statistiken API
Eine Einrichtungsbefehlszeile mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Statistiken API
Abschnitt mit dem Titel „Statistiken API“Ab Version 1.3.0 kann das Update-System Statistiken senden!
Standardmäßig werden alle Statistiken an unseren Server gesendet, um die Nutzung zu verstehen und zu forschen.
Wenn Sie stattdessen diese Daten an Ihren Server senden möchten, ändern Sie die Konfiguration unten:
// capacitor.config.json{ "appId": "**.***.**", "appName": "Name", "plugins": { "CapacitorUpdater": { "statsUrl": "YOUR_URL" } }}Datensatzstruktur
Abschnitt mit dem Titel ‘Datensatzstruktur’Was Ihr Server erhalten wird ist:
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,}Sie können es auch vollständig deaktivieren, indem Sie einen leeren String verwenden. Beachten Sie, dass Statistiken anonymisiert werden und mir helfen, zu verstehen, wie Menschen das Plugin verwenden, um Probleme zu lösen und es zu verbessern.
Erwartetes Verhalten bei ‘keinem Update’
Abschnitt mit dem Titel “Erwartetes Verhalten bei ‘kein Update’”Wenn Ihr Update-Endpunkt hat keine neue Version, sollte er mit einem Fehler-Payload wie folgt antworten:
{ "error": "no_new_version_available", "message": "No new version available" }Der error code muss genau no_new_version_available. Der message kann jeder beliebige String sein, den Sie wollen (er wird nur zum Logging/Debugging verwendet). Dies ist das erwartete Verhalten und wird trotzdem mit HTTP 200wiederholt. Wenn Ihr Update-Endpunkt stattdessen eine 200 Antwort ohne einen urlübersendet, wird das Plugin es als Download-Fehler behandeln und einen download_fail Statistik.
Implementierungsbeispiel
Abschnitt mit dem Titel „Implementierungsbeispiel“Hier ist ein Beispiel für code in JavaScript, um die Statistiken des Plugins zu speichern:
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' }}Dieser Endpunkt sollte eine JSON zurückgeben:
{ "status": "ok" }Für detaillierte Beschreibungen aller Aktionen und ihrer Bedeutungen, zögern Sie bitte die Debugging-Dokumentation auf.
- Aktionen, die vom Gerät gesendet werden: Siehe Entwicklungs-Dokumentation - Gesendet vom Gerät Abschnitt
- Aktionen, die vom Backend gesendet werden: Siehe die Entwicklungs-Dokumentation - Gesendet vom Backend Abschnitt
Weitermachen von Statistiken API
Abschnitt mit dem Titel “Weitermachen von Statistiken API”Wenn Sie "Statistiken __CAPGO_KEEP_0__" verwenden, um einen Dashboard und __CAPGO_KEEP_0__-Plan zu erstellen, verbinden Sie es mit Wenn Sie "Statistiken API" verwenden, um einen Dashboard und API-Plan zu erstellen, verbinden Sie es mit Wenn Sie "Statistiken API" verwenden, um einen Dashboard und API-Plan zu erstellen, verbinden Sie es mit Mit @capgo/capacitor-Updater für die native Fähigkeit in Mit @capgo/capacitor-Updater, API Übersicht für die Implementierungsdetails in API Übersicht, Einführung für die Implementierungsdetails in Einführung, API Schlüssel für die Implementierungsdetails in API Schlüssel und Geräte für die Implementierungsdetails in Geräte.