Mitwirken

Diese Dokumentation bearbeiten

Übersetzen Sie die Dokumentation oder öffnen Sie das vollständige Projekt auf Ihrem Computer.

Es wird nichts veröffentlicht, bevor Sie Ihre Arbeit zur Übermittlung freigeben.

Mobile-API

Der plattformübergreifende Manager application.Mobile – ein einzelner, durch Build-Bedingungen abgesicherter Einstiegspunkt für die nativen mobilen Funktionen, die iOS und Android gemeinsam haben

Native mobile Funktionen werden auf zwei Arten bereitgestellt:

  • Plattformspezifische Manager – application.IOS (in //go:build ios-Dateien) und application.Android (in //go:build android-Dateien). Verwende diese für alle plattformspezifischen Funktionen. Die vollständigen plattformspezifischen APIs findest du in den Referenzen zu iOS und Android.
  • application.Mobile – ein einzelner, durch Build-Bedingungen abgesicherter Manager für die Teilmenge der Funktionen, die sich auf beiden Plattformen identisch verhalten. Verwende ihn, wenn du einen einzigen Codepfad benötigst, der überall kompiliert und ausgeführt wird.

application.Mobile

application.Mobile delegiert unter iOS an IOS, unter Android an Android und auf dem Desktop an einen wirkungslosen Stub. Da keine Build-Bedingung gilt, kannst du den Manager aus gewöhnlichem, plattformunabhängigem Go-Code aufrufen – ohne eigene //go:build-Dateien:

go
// Works in any file, on any target.
// On desktop this returns "" (no-op); on device it returns the real path.
dbDir := application.Mobile.StoragePath()
if dbDir == "" {
    // Off-device, or the directory could not be created — handle accordingly.
    return
}
db, _ := sql.Open("sqlite", filepath.Join(dbDir, "app.db"))

StoragePath() gibt den absoluten Pfad zum privaten Dateiverzeichnis der App zurück – unter Android getFilesDir(), unter iOS das Verzeichnis „Application Support“. Dieses Verzeichnis wird für Datenbanken und andere persistente Dateien empfohlen. Auf dem Desktop sowie auf dem Gerät, wenn das Verzeichnis nicht verfügbar ist (unter iOS, wenn es nicht erstellt werden kann), wird eine leere Zeichenfolge zurückgegeben. Prüfe daher vor der Verwendung auf "".

Funktionen

Der Manager Mobile stellt die Funktionen bereit, deren Signaturen unter iOS und Android identisch sind:

Funktion API Hinweise
Teilen-Dialog Mobile.Share(json) {text, url}
URL extern öffnen Mobile.OpenURL(url) Systembrowser
Bildschirm aktiv halten Mobile.SetKeepAwake(bool)
Taschenlampe Mobile.SetTorch(bool) → common:torch
Abstände des sicheren Bereichs Mobile.SafeAreaJSON() {top,bottom,left,right}
App-Informationen Mobile.AppInfoJSON() {name,version,build,bundleId}
Ausrichtungssperre Mobile.SetOrientation(mode) portrait / landscape / auto
Statusleiste Mobile.SetStatusBar(json) Stil + Sichtbarkeit
Speicherinformationen Mobile.StorageJSON() {free,total} Byte
Speicherpfad Mobile.StoragePath() Privates Dateiverzeichnis der App
Stromversorgung / Akku Mobile.PowerJSON() {level,charging,lowPower}
Netzwerkstatus Mobile.NetworkJSON() {connected,type}
Biometrie Mobile.BiometricAuthenticate(reason) → common:biometric
Sicherer Speicher Mobile.SecureGet(key) / Mobile.SecureDelete(key) Schlüsselbund / EncryptedSharedPreferences
Geolokalisierung Mobile.GetLocation() einmalig → common:location
Haptik Mobile.Haptic(type) Aufprall / Benachrichtigung / Auswahl
Beschleunigungssensor Mobile.SetMotion(bool) → common:motion
Näherungssensor Mobile.SetProximity(bool) → common:proximity
Sprachausgabe Mobile.Speak(text) / Mobile.StopSpeak()
Tastaturabstände Mobile.SetKeyboardWatch(bool) → common:keyboard
Bildschirmaufnahme Mobile.SetScreenProtect(bool) → common:screenCapture
Kamera Mobile.CapturePhoto() / Mobile.CaptureVideo() → common:capture

Asynchrone Ergebnisse treffen wie bei den plattformspezifischen Managern als common:*-Ereignisse ein — die Nutzdaten finden Sie unter Ereignisse.

Was plattformspezifisch bleibt

Funktionen, deren Struktur sich zwischen iOS und Android unterscheidet, sind nicht über Mobile verfügbar. Rufen Sie sie aus einer Datei mit Build-Tag über application.IOS / application.Android auf:

Aspekt iOS Android
Helligkeit (festlegen) IOS.SetBrightness(0.0-1.0) Android.SetBrightness(0-100)
Helligkeit / Ausrichtung (abrufen) IOS.GetBrightness() / IOS.GetOrientation() Android.BrightnessJSON() / Android.OrientationJSON()
Lokale Benachrichtigung IOS.PostNotification(json) Android.Notify(json)
Sicherer Speicher (schreiben) IOS.SecureSet(key, value) Android.SecureSet(json)
Hintergrundausführung IOS.BeginBackgroundTask / EndBackgroundTask Android.StartForegroundService / StopForegroundService
Seite bearbeiten

Zuletzt aktualisiert: