Contribuer

Modifier cette documentation

Traduisez la documentation ou ouvrez le projet complet sur votre ordinateur.

Rien n’est publié tant que vous ne choisissez pas de soumettre votre travail.

API mobile

Le gestionnaire multiplateforme application.Mobile — un point d’entrée unique protégé par des contraintes de compilation pour les fonctionnalités mobiles natives communes à iOS et Android

Les fonctionnalités mobiles natives sont exposées de deux manières :

  • Gestionnaires propres à chaque plateforme — application.IOS (dans les fichiers //go:build ios) et application.Android (dans les fichiers //go:build android). Utilisez-les pour tout ce qui est propre à une plateforme. Consultez les références iOS et Android pour connaître l’ensemble de l’API propre à chaque plateforme.
  • application.Mobile — un gestionnaire unique, protégé par des contraintes de compilation, qui couvre le sous-ensemble de fonctionnalités au comportement identique sur les deux plateformes. Utilisez-le si vous souhaitez un seul chemin de code qui se compile et s’exécute partout.

application.Mobile

application.Mobile délègue à IOS sous iOS, à Android sous Android et à une implémentation factice sans effet sur ordinateur. Comme il n’est soumis à aucune contrainte de compilation, vous pouvez l’appeler depuis du code Go ordinaire et indépendant de la plateforme, sans devoir créer vos propres fichiers //go:build :

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() renvoie le chemin absolu du répertoire de fichiers privé de l’application — getFilesDir() sous Android et le répertoire Application Support sous iOS — recommandé pour stocker les bases de données et autres fichiers persistants. Il renvoie une chaîne vide sur ordinateur, ainsi que sur l’appareil si le répertoire est indisponible (sous iOS, s’il ne peut pas être créé). Vérifiez donc la valeur "" avant de l’utiliser.

Fonctionnalités

Le gestionnaire Mobile expose les fonctionnalités dont les signatures sont identiques sous iOS et Android :

Fonctionnalité API Remarques
Feuille de partage Mobile.Share(json) {text, url}
Ouverture externe d’une URL Mobile.OpenURL(url) Navigateur système
Maintien de l’écran allumé Mobile.SetKeepAwake(bool)
Torche / lampe de poche Mobile.SetTorch(bool) → common:torch
Marges de la zone sûre Mobile.SafeAreaJSON() {top,bottom,left,right}
Informations sur l’application Mobile.AppInfoJSON() {name,version,build,bundleId}
Verrouillage de l’orientation Mobile.SetOrientation(mode) portrait / landscape / auto
Barre d’état Mobile.SetStatusBar(json) style et visibilité
Informations sur le stockage Mobile.StorageJSON() {free,total} octets
Chemin de stockage Mobile.StoragePath() Répertoire de fichiers privé de l’application
Alimentation / batterie Mobile.PowerJSON() {level,charging,lowPower}
État du réseau Mobile.NetworkJSON() {connected,type}
Authentification biométrique Mobile.BiometricAuthenticate(reason) → common:biometric
Stockage sécurisé Mobile.SecureGet(key) / Mobile.SecureDelete(key) Trousseau / EncryptedSharedPreferences
Géolocalisation Mobile.GetLocation() ponctuelle → common:location
Retour haptique Mobile.Haptic(type) impact / notification / sélection
Accéléromètre Mobile.SetMotion(bool) → common:motion
Proximité Mobile.SetProximity(bool) → common:proximity
Synthèse vocale Mobile.Speak(text) / Mobile.StopSpeak()
Marges du clavier Mobile.SetKeyboardWatch(bool) → common:keyboard
Capture d’écran Mobile.SetScreenProtect(bool) → common:screenCapture
Appareil photo Mobile.CapturePhoto() / Mobile.CaptureVideo() → common:capture

Les résultats asynchrones arrivent sous forme d’événements common:*, exactement comme avec les gestionnaires propres à chaque plateforme — consultez Événements pour connaître les charges utiles.

Ce qui reste propre à chaque plateforme

Les fonctionnalités dont la forme diffère entre iOS et Android ne sont pas disponibles sur Mobile. Appelez-les via application.IOS / application.Android depuis un fichier doté d’une balise de compilation :

Fonctionnalité iOS Android
Luminosité (définition) IOS.SetBrightness(0.0-1.0) Android.SetBrightness(0-100)
Luminosité / orientation (lecture) IOS.GetBrightness() / IOS.GetOrientation() Android.BrightnessJSON() / Android.OrientationJSON()
Notification locale IOS.PostNotification(json) Android.Notify(json)
Stockage sécurisé (écriture) IOS.SecureSet(key, value) Android.SecureSet(json)
Exécution en arrière-plan IOS.BeginBackgroundTask / EndBackgroundTask Android.StartForegroundService / StopForegroundService
Modifier la page

Dernière mise à jour :