PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Présentation
  • Rappel : le niveau d'API cible "TargetSdkVersion"
  • Comportement des applications en arrière-plan
  • Présentation
  • Modifications à partir de WINDEV Mobile 25 Update 3
  • Liste des fonctions concernées
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Avertissement
A partir de la version 26 (93), WINDEV Mobile gère Android 11. Pour plus de détails, consultez Android 11 : Modification de comportement des applications.
Présentation
Après chaque déploiement d'une nouvelle version de Android, Google demande à relever le niveau d'API cible "TargetSdkVersion" des applications pour les déployer dans le Play Store. Avec la sortie de Android 10, le niveau d'API imposé pour que Google autorise le déploiement doit être à 29. Ce nouveau niveau d'API s'applique à partir du :
  • 3 août 2020 pour les nouvelles applications,
  • 2 novembre 2020 pour les applications mises à jour.
Voici les changements qui s'appliquent aux applications :
  1. Lorsque l'exécution se fait sous Android 10
    • L'ouverture d'une fenêtre n'est plus autorisée lorsque l'application est en arrière-plan. Pour plus de détails, consultez le paragraphe Comportement des applications en arrière-plan.
    • Il n'est plus autorisé de récupérer un identifiant unique pour l'appareil avec les fonctions SysIMEI et SysNumSérie. Les applications qui sont "device owner" ne sont pas concernées par cette limitation.
    • Il n'est plus autorisé de manipuler par programmation les paramètres de connexions en WiFi. Les fonctions WiFiActive (syntaxe pour modifier l'activation uniquement), WiFiAjouteRéseau, WifiSupprimeRéseau, WiFiConnecte et WiFiListeRéseau déclenchent une erreur fatale en cas d'utilisation sous Android 10 ou supérieur.
      Les applications qui sont "device owner" ne sont pas concernées par cette limitation.
    • Il n'est plus permis de récupérer le contenu du presse-papiers si l'application est en arrière-plan. Dans ce cas, la fonction PressePapier retournera une chaîne vide.
  2. Lorsque l'exécution se fait sous Android 10 et que le niveau d'API cible est en 29 :
Remarque : Lors de la publication d'une application sur le Play Store, l'erreur suivante peut être affichée : "La clé privée n'a pas été correctement chiffrée, ou nous n'acceptons pas ce type de clé". Il est nécessaire de recréer le fichier de signature de l'application (ce fichier peut être recrée dans l'assistant de génération de l'application).
Attention : Si des identifiants se basent sur le fichier de signature (par exemple identifiant Google Map), il est également nécessaire de re-générer ces identifiants avec la nouvelle clé.

Rappel : le niveau d'API cible "TargetSdkVersion"

Lors de la compilation d'une application pour Android, l'APK généré inclus un niveau d'API cible "TargetSdkVersion" du SDK Android. Avec ce niveau d'API cible, le système Android détermine les fonctionnalités dont peut disposer l'application, et les règles de sécurité qui doivent lui être appliquées.
Le niveau d'API cible "TargetSdkVersion" attribué à une application est visible dans l'assistant de génération de l'APK à l'étape "Configuration" de l'assistant de génération :
  1. Cliquez sur "Configuration avancée",
  2. Dans la fenêtre "Configuration avancée", cliquez sur "Editer le manifeste",
  3. Déroulez le noeud "uses-sdk",
  4. L'entrée "android:targetSdkVersion" permet de connaître le niveau d'API cible.
Ce niveau d'API est d'ailleurs modifiable. Il est donc possible dans une application WINDEV Mobile générée sans la mise à jour 118 661, d'indiquer le niveau d'API cible en 29. Mais dans ce cas l'application n'aura pas un framework adapté aux spécificités de ce niveau d'API. Il s'agit donc d'une solution fortement déconseillée, puisque que Android appliquera des règles de sécurité à l'application qui sont différentes de celles pour lesquelles elle a été testée.
Pour plus de détails, consultez le site de Google.
Comportement des applications en arrière-plan

Présentation

A partir de la version 10 de Android, Google supprime la possibilité pour une application en arrière plan d'ouvrir une fenêtre (Activity) https://developer.android.com/guide/components/activities/background-starts. C'est un changement très important qui concerne toutes les applications Android, donc également les applications générées avec WINDEV Mobile. Seules les applications "device owner" ne sont pas concernées, dans ce mode spécifique, l'ouverture reste autorisée.
Une application jusqu'alors fonctionnelle avec toutes les versions en Android antérieures à la 10, aura donc des limitations si elle est installée sous Android 10 :
  • lorsque l'application est en arrière-plan, l'ouverture d'une fenêtre (OuvreFenêtreMobile, Info, Erreur, Dialogue, ...) n'est plus autorisée,
  • l'exécution d'une fonction WLangage qui conduit à l'ouverture d'une fenêtre n'est plus autorisée (SMSLanceAppli, ...),
  • le framework Android de l'application sera également bloqué et ne pourra ouvrir une fenêtre en arrière-plan. L'ouverture d'une fenêtre en arrière-plan par le framework est nécessaire à la gestion des fonctionnalités suivantes :
    • réception d'une notification push,
    • détection de l'entrée ou la sortie d'une région de balises beacon (fonction BeaconDetecteEnArrierePlan),
    • réception d'une nouvelle position lorsque le suivi (traking) de la position est activé (fonctions géoSuiviProcédure)
    • exécution de tâches en arrière-plan (fonctions TacheEnArrièrePlanxxx).
    • lancement de l'application au démarrage de l'appareil Android.
Ces limitations s'appliquent à toutes les applications générées avec WINDEV Mobile 25 "Update 2" et les versions antérieures.

Modifications à partir de WINDEV Mobile 25 Update 3

Le framework Android des applications WINDEV Mobile a été modifié afin de tenir compte de cette exigence de Google. Toutes les adaptations nécessaires sont incluses à partir de WINDEV Mobile 25 Update 3.
A partir de WINDEV Mobile 25 Update 3, les notifications push, le suivi de position, la détection beacon, ... sont rétablies. De plus le mécanisme de sécurité du WLangage est complété, afin de déclencher une erreur fatale si une fonction provoquant l'ouverture d'une fenêtre est appelée avec l'application en arrière-plan (voir la liste des fonctions concernées).
Afin de s'assurer du bon fonctionnement d'une application sous Android 10, il faut donc :
  • utiliser la version WINDEV Mobile 25 Update 3 minimum pour sa génération,
  • vérifier tous les traitements pouvant être lancés depuis l'application en arrière-plan : ces traitements ne doivent pas entraîner l'ouverture d'une fenêtre. Pour optimiser votre code, vous pouvez :
    • utiliser la fonction EnModeArrièrePlan qui permet de savoir si le traitement en cours s'exécute en arrière-plan ou non.
    • utiliser la fonction ExeInfo qui permet de savoir si l'application est lancée au démarrage de l'appareil. Dans ce cas, cette fonction appelée avec la constante exeLancement en paramètre retournera la constante exeDémarrage.
    • si une application a besoin d'interagir avec l'utilisateur alors qu'elle se trouve en arrière-plan, la solution préconisée est d'afficher une notification. Lors du clic sur la notification, l'application sera remise au premier plan et sera donc autorisée à ouvrir une fenêtre depuis la procédure appelée grâce à la propriété ActionClic de la notification (la variable de type Notification doit avoir la propriété ActiveApplication à Vrai).
  • en phase de mise au point de l'application sur un périphérique Android, utiliser le log Android afin de cerner l'origine d'un éventuel blocage durant l'exécution en arrière-plan. En effet, l'ouverture de fenêtre n'étant pas autorisée depuis l'arrière-plan, le mécanisme de sécurité du WLangage ne peut pas remonter d'information. Les erreurs sont donc consignées dans le log Android.

Liste des fonctions concernées

Les fonctions suivantes déclenchent une erreur fatale en cas d'appel depuis un code lancé en arrière-plan :
Versions 17 et supérieures
AlbumSélecteur
Nouveauté 17
AlbumSélecteur
AlbumSélecteur
Récupère une photo, une image ou une vidéo stockée dans l'album de photos de l’appareil mobile.
Versions 19 et supérieures
AppliOuvreFiche
Nouveauté 19
AppliOuvreFiche
AppliOuvreFiche
Ouvre :
  • la fiche d'une application sur le market Android (Play Store), iOS (App Store) ou Windows (Windows Store) pour que l'utilisateur puisse la noter et/ou la commenter.
  • la fiche de paramétrage des achats In-App d'une application.
Versions 22 et supérieures
AuthIdentifie
Nouveauté 22
AuthIdentifie
AuthIdentifie
Effectue une authentification utilisant le protocole OAuth 2.0 sur un webservice quelconque.
Versions 09 et supérieures
Avertissement
Nouveauté 09
Avertissement
Avertissement
Affiche un message personnalisé dans une fenêtre d'avertissement système.
Versions 25 et supérieures
AvertissementAsynchrone
AvertissementAsynchrone
Affiche un message personnalisé dans une fenêtre d'avertissement système non bloquante.
Versions 12 et supérieures
BTChangeVisibilité
Nouveauté 12
BTChangeVisibilité
BTChangeVisibilité
Change la visibilité d'une radio Bluetooth.
Versions 16 et supérieures
CBCapture
Nouveauté 16
CBCapture
CBCapture
Décode les informations stockées dans un code-barres en utilisant la caméra de l'appareil (Android, iPhone, iPad).
Versions 09 et supérieures
Confirmer
Nouveauté 09
Confirmer
Confirmer
Affiche un message dans une boîte de dialogue standard proposant les réponses "Oui", "Non", "Annuler" et renvoie la réponse de l'utilisateur.
Versions 25 et supérieures
ConfirmerAsynchrone
Nouveauté 25
ConfirmerAsynchrone
ConfirmerAsynchrone
Affiche un message non bloquant dans une boîte de dialogue standard proposant les réponses "Oui", "Non", "Annuler" et appelle une procédure WLangage avec la réponse de l'utilisateur.
Versions 16 et supérieures
ContactAffiche
Nouveauté 16
ContactAffiche
ContactAffiche
Ouvre la fiche d'un contact dans l'application native de gestion des contacts de l'appareil (Android, iPhone ou iPad, Universal Windows).
Versions 16 et supérieures
ContactCrée
Nouveauté 16
ContactCrée
ContactCrée
Affiche la fenêtre de création de contact de l'application native de gestion des contacts de l'appareil (Android, iPhone ou iPad, Universal Windows).
Versions 16 et supérieures
ContactEdite
Nouveauté 16
ContactEdite
ContactEdite
Ouvre en édition la fiche d'un contact en cours dans l'application native de gestion des contacts de l'appareil (Android, iPhone ou iPad, Universal Windows).
Versions 16 et supérieures
ContactSélectionne
Nouveauté 16
ContactSélectionne
ContactSélectionne
Affiche la liste des contacts de l'appareil (Android, iPhone ou iPad, Universal Windows).
Versions 17 et supérieures
DateSélecteur
Nouveauté 17
DateSélecteur
DateSélecteur
Affiche le sélecteur de date du système.
Versions 10 et supérieures
Dialogue
Nouveauté 10
Dialogue
Dialogue
Affiche une boîte de message et renvoie la valeur du bouton cliqué par l'utilisateur.
Versions 25 et supérieures
DialogueAsynchrone
Nouveauté 25
DialogueAsynchrone
DialogueAsynchrone
Affiche une boîte de message non bloquante et appelle une procédure WLangage avec la valeur du bouton cliqué par l'utilisateur.
Versions 16 et supérieures
EmailLanceAppli
Nouveauté 16
EmailLanceAppli
EmailLanceAppli
Lance l'application native d'envoi d'emails du poste en cours :
  • Poste sous Windows,
  • Appareil mobile (Android, iPhone, iPad).
Versions 09 et supérieures
EmailOuvreMessagerie
EmailOuvreMessagerie
Ouvre le logiciel de messagerie par défaut :
  • de l'internaute sur le poste navigateur.
  • de l'utilisateur sur le poste Windows en cours.
  • sur le téléphone.
Versions 09 et supérieures
Erreur
Nouveauté 09
Erreur
Erreur
Affiche un message d'erreur personnalisé dans une fenêtre d'erreur système.
Versions 25 et supérieures
ErreurAsynchrone
Nouveauté 25
ErreurAsynchrone
ErreurAsynchrone
Affiche un message d'erreur personnalisé dans une fenêtre d'erreur système non bloquante.
Versions 15 et supérieures
ErreurConstruit
Nouveauté 15
ErreurConstruit
ErreurConstruit
Affiche un message d'erreur personnalisé dans une fenêtre d'erreur système.
Versions 21 et supérieures
FBOuvreSession
Nouveauté 21
FBOuvreSession
FBOuvreSession
Permet l'authentification et la connexion à Facebook.
Versions 17 et supérieures
géoLanceAppli
Nouveauté 17
géoLanceAppli
géoLanceAppli
Lance l’application de cartographie native de l’appareil pour afficher :
  • une position géographique donnée,
  • un itinéraire entre deux positions.
Versions 18 et supérieures
GglImprimeDocument
Nouveauté 18
GglImprimeDocument
GglImprimeDocument
Lance l’impression d’un document (fichier texte, pdf, images, document Word, Excel, ...) en utilisant le service Cloud Print de Google.
Versions 24 et supérieures
gpwAuthLogin
Nouveauté 24
gpwAuthLogin
gpwAuthLogin
Permet de se connecter au Groupware Utilisateur en utilisant une authentification avec un compte de type Facebook, Google, Microsoft, etc.
Versions 17 et supérieures
HeureSélecteur
Nouveauté 17
HeureSélecteur
HeureSélecteur
Affiche le sélecteur d’heure du système.
Versions 19 et supérieures
inAppAchèteProduit
Nouveauté 19
inAppAchèteProduit
inAppAchèteProduit
Envoie une demande d’achat d'un produit "In-App" associé à l'application.
Versions 09 et supérieures
Info
Nouveauté 09
Info
Info
Affiche un message personnalisé dans une fenêtre d'information système.
Versions 25 et supérieures
InfoAsynchrone
Nouveauté 25
InfoAsynchrone
InfoAsynchrone
Affiche un message personnalisé et non bloquant dans une fenêtre d'information système.
Versions 15 et supérieures
InfoConstruit
Nouveauté 15
InfoConstruit
InfoConstruit
Affiche un message personnalisé dans une fenêtre d'information système.
Versions 25 et supérieures
KiosqueActive
Nouveauté 25
KiosqueActive
KiosqueActive
Passe l'application Android en cours en mode kiosque.
Versions 25 et supérieures
KiosqueDésactive
Nouveauté 25
KiosqueDésactive
KiosqueDésactive
Désactive le mode kiosque pour l'application en cours.
Versions 09 et supérieures
LanceAppli
Nouveauté 09
LanceAppli
LanceAppli
Lance l'exécution d'un programme (exécutable par exemple) depuis l'application en cours.
Versions 09 et supérieures
LanceAppliAssociée
Nouveauté 09
LanceAppliAssociée
LanceAppliAssociée
Ouvre directement un document dans son application associée.
Versions 18 et supérieures
LancePartage
Nouveauté 18
LancePartage
LancePartage
Ouvre une popup permettant de sélectionner l’application à utiliser pour partager une ressource (texte ou document).
Versions 18 et supérieures
NFCEcritTag
Nouveauté 18
NFCEcritTag
NFCEcritTag
Déclenche l’écriture de données sur un tag (ou puce) NFC.
Versions 18 et supérieures
NFCEnvoieTag
Nouveauté 18
NFCEnvoieTag
NFCEnvoieTag
Envoie un tag NFC à un autre appareil.
Versions 18 et supérieures
NFCLitTag
Nouveauté 18
NFCLitTag
NFCLitTag
Déclenche la lecture d’un tag (ou puce) NFC ou active la détection de tags NFC pour la fenêtre en cours.
Versions 09 et supérieures
OKAnnuler
Nouveauté 09
OKAnnuler
OKAnnuler
Affiche un message dans une boîte de dialogue standard proposant les réponses "OK" et "Annuler" et renvoie la réponse de l'utilisateur.
Versions 25 et supérieures
OKAnnulerAsynchrone
Nouveauté 25
OKAnnulerAsynchrone
OKAnnulerAsynchrone
Affiche un message dans une boîte de dialogue standard non bloquante proposant les réponses "OK" et "Annuler" et appelle une procédure WLangage avec la réponse de l'utilisateur.
Versions 09 et supérieures
OuiNon
Nouveauté 09
OuiNon
OuiNon
Affiche un message dans une boîte de dialogue standard proposant les réponses "Oui" et "Non" et renvoie la réponse de l'utilisateur.
Versions 25 et supérieures
OuiNonAsynchrone
Nouveauté 25
OuiNonAsynchrone
OuiNonAsynchrone
Affiche un message dans une boîte de dialogue standard non bloquante proposant les réponses "Oui" et "Non" et appelle une procédure WLangage avec la réponse de l'utilisateur.
Versions 19 et supérieures
OuvreFenêtreMobile
Nouveauté 19
OuvreFenêtreMobile
OuvreFenêtreMobile
Ouvre une fenêtre dans une application mobile.
Versions 17 et supérieures
ReconnaissanceVocaleDéclenche
ReconnaissanceVocaleDéclenche
Déclenche le service de reconnaissance vocale de l’appareil.
Versions 18 et supérieures
RendezVousAffiche
Nouveauté 18
RendezVousAffiche
RendezVousAffiche
Affiche un rendez-vous dans l'application native de gestion des rendez-vous de l'appareil mobile (Android ou iOS).
Versions 18 et supérieures
RendezVousCrée
Nouveauté 18
RendezVousCrée
RendezVousCrée
Affiche la fenêtre de création de rendez-vous de l'application native de gestion des rendez-vous de l'appareil Android.
Versions 10 et supérieures
Saisie
Nouveauté 10
Saisie
Saisie
Affiche un message en permettant à l'utilisateur de saisir une information.
Versions 19 et supérieures
SMSLanceAppli
Nouveauté 19
SMSLanceAppli
SMSLanceAppli
Lance l'application native d'envoi de SMS de l'appareil (Android ou iPhone/iPad).
Versions 17 et supérieures
SynthèseVocaleInitialise
SynthèseVocaleInitialise
Initialise les paramètres de la synthèse vocale pour l’application en cours.
Versions 17 et supérieures
SynthèseVocaleLitFichier
SynthèseVocaleLitFichier
Lit le contenu du fichier spécifié en utilisant le moteur de synthèse vocale de l’appareil.
Versions 17 et supérieures
SynthèseVocaleLitTexte
SynthèseVocaleLitTexte
Lit le texte spécifié en utilisant le moteur de synthèse vocale de l'appareil.
Versions 26 et supérieures
SysOptimBatterieArrièrePlan
SysOptimBatterieArrièrePlan
Permet de gérer l'optimisation de la batterie :
  • Récupère le mode de gestion de l'optimisation de la batterie pour l'application en cours.
  • Demande à l'utilisateur de désactiver l'optimisation de la batterie de cette application sur l'appareil.
Cette fonction permet d'empêcher le système d'exploitation d'arrêter l'exécution de l'application lorsqu'elle est en arrière-plan.
Versions 15 et supérieures
telDialerAffiche
Nouveauté 15
telDialerAffiche
telDialerAffiche
Ouvre l’application de téléphonie (dialer) par défaut et affiche le numéro spécifié. Aucun appel n’est déclenché.
Versions 15 et supérieures
telDialerCompose
Nouveauté 15
telDialerCompose
telDialerCompose
Ouvre l’application de téléphonie (dialer) par défaut du téléphone et compose le numéro spécifié.
Versions 24 et supérieures
URISélecteur
Nouveauté 24
URISélecteur
URISélecteur
Ouvre une fenêtre du système pour sélectionner une ressource provenant :
  • du système de fichiers de l'appareil,
  • du Cloud (Google Drive, Microsoft OneDrive, etc.)
  • ou d'un des gestionnaires de contenu installés sur l'appareil.
Versions 20 et supérieures
VérifieIdentitéUtilisateur
VérifieIdentitéUtilisateur
Permet de vérifier l'identité réelle de l’utilisateur en cours par vérification biométrique.
Versions 16 et supérieures
VidéoLanceAppli
Nouveauté 16
VidéoLanceAppli
VidéoLanceAppli
Lance l'application caméra native de l'appareil afin d'enregistrer une vidéo ou de prendre une photo.
Version minimum requise
  • Version 25
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire