Statistics API
Kopieren Sie einen Setup-Vorschlag mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin.
Statistics API
Abschnitt mit dem Titel “Statistiken API”Statistiken __CAPGO_KEEP_0__ (Statistiken __CAPGO_KEEP_0__ )
Standardmäßig werden alle Statistiken an unseren Server gesendet, um die Nutzung zu verstehen und zu erforschen.
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" } }}Datenstruktur
Was Ihr Server erhalten wird ist:Was Ihr Server erhalten wird:
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.
Erwartetes "kein Update"-Verhalten
Abschnitt mit dem Titel „Erwartetes Verhalten bei keinem Update“Wenn Ihr Update-Endpunkt keine neue Version 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 sein. Der message kann jede Zeichenkette sein, die Sie wollen (er wird nur zum Logging/Debugging verwendet). Dies ist das erwartete Verhalten und es wird trotzdem mit HTTP 200 zurückgegeben. Wenn Ihr Update-Endpunkt stattdessen eine 200 Antwort ohne einen url zurückgibt, wird der Plugin als Download-Fehler behandelt und eine download_fail stat.
Implementierungsbeispiel
Sektion 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" }Actions
Section titled “Actions”Für detaillierte Beschreibungen aller Aktionen und deren Bedeutungen, wenden Sie sich bitte zur Debug-Dokumentation.
- Aktionen, die vom Gerät gesendet werden: Sehen Sie sich Entwicklungs-Dokumentation - Gesendet vom Gerät Abschnitt
- Aktionen, die vom Backend gesendet werden: Siehe die Entwicklungs-Dokumentation - Gesendet vom Backend Abschnitt
Fortsetzen von Statistiken API
Abschnitt mit dem Titel „Fortsetzen von Statistiken API“Wenn Sie die Funktion Statistiken API zum Planen von Dashboard und API-Operationen verwenden, verbinden Sie sie 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