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) undapplication.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:
// 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 |