IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windev Mobile Discussion :

Relancer l'application après une longue inactivité


Sujet :

Windev Mobile

  1. #1
    Invité
    Invité(e)
    Par défaut Relancer l'application après une longue inactivité
    Bonjour,
    J'aurais besoin de relancer l'application quand l'utilisateur ne s'en sert pas pendant un certain temps (par exemple, il laisse l'application tournait en tâche de fond pour faire autre chose), comment on peut faire ça?
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Par défaut
    Bonjour,

    Tu peux lancer une Notification sans message.
    La procédure par défaut rendra la main à l'application si elle est inactive ou active.

  3. #3
    Invité
    Invité(e)
    Par défaut
    S'agit-il de ce genre de notification?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Par défaut
    Oui, une notification locale ou push.

    Quand ton appli est fermée, si tu lance une Notification, tu relance ton application.

    Regarde la doc au niveau de la Gestion des notifications dans l'application Mobile

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai fait un test avec le bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    notif est une Notification
    notif..Message = "Cliquez pour afficher le message"
    NotifAjoute(notif)
    Cela m'a ouvert une notification et je n'ai pas l'impression que cela corresponde à ma problématique : l'utilisateur ouvre l'application, fait 2-3 choses dessus, il clique sur le bouton home du téléphone / tablette pour aller sur internet, pour mettre en veille l'appareil, etc. Mon objectif, c'est que par exemple, si l'application reste inactive pendant 5minutes, quand l'utilisateur va revenir sur mon programme, il retourne sur l'écran principal, et si possible, de réinitialiser toutes les variables globales (ce qui se fait sur les jeux android, sur ios, je ne sais pas, je n'ai pas d'appareil ios en ma possession).

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Par défaut
    Perso, j ai mis des procédures sur les notifications en push
    Suivant ce qui est envoyé, tu as des procédures différentes.

    L'une d'elle pouvant être la remise à 0 des variables et l'ouverture de la page Home.

    Ce que j'ai fait aussi est un tableau de structure comprenant chaque page utilisée avec un délai d'utilisation.
    Ces informations me remontent via un webservice perso puisque l'application ne fonctionne qu'avec un webservice.
    Cela me permet de faire un 'Analytics' des fenêtres, donc de savoir si l'application n'a pas été utilisée depuis x minutes et que l'utilisateur était sur la fenêtre x.

    Si je veux le relancer, j'utilise une notification push qui va via une procédure va lui ouvrir une fenêtre d'aide ou autre.
    Tout commence avec l'insertion de la possibilité de reception des notifications en procédure globale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <COMPILE SI TypeConfiguration=Android>
    	NotifPushActive(ActivationNotifPush)	
    	// Callback pour l'appel des notifications
    	NotifPushProcédure(RéceptionNotifPush)
    <FIN>
    et la procédure de réception qui dispatche les actions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RéceptionNotifPush(maNotif est un Notification,ErreurNotif est une chaîne ANSI)
    	monAction est une chaîne ANSI=ExtraitChaîne(maNotif..Contenu,1,"|")
    Enfin, c'est ce que j'ai fait. Il y a peut être mieux

  7. #7
    Invité
    Invité(e)
    Par défaut
    Si je comprends bien, il faut soit passer par l'événement mise en arrière plan de XXX, soit par mise en premier plan de XXX, c'est comme ça que tu procèdes?
    Du coup, si je me base sur l'événement mise en premier plan de XXX, tout ce dont j'aurais à faire est de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ouvreFille(FEN_Identification)
    ce qui rend obsolète l'utilisation de notifications, mais aussi l'utilisation de timers, ce qui pourrait me convenir.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Par défaut
    Oui, tout à fait;sur ces événements tu peux ouvrir une fenêtre en fonction de ce que tu veux faire.

  9. #9
    Invité
    Invité(e)
    Par défaut
    J'ai fait un test avec le code suivant dans l'événement Mise en arrière plan de XXX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    l_fenetre est une chaîne=FenEnCours()
    SI SansEspace(Majuscule(l_fenetre))<>SansEspace(Majuscule("FEN_Identification")) ALORS
    	<COMPILE SI Configuration="Application Android">
    		Utilise(FEN_Identification)
    	<FIN>
     
    	<COMPILE SI Configuration="Application iOS">
    		OuvreFille(FEN_Identification)
    	<FIN>
    FIN
    ça répond très bien à mes attentes, faut juste que je vois comment désactiver le clic sur le bouton retour sur android, j'avais voulu faire comme c'est expliqué ici mais le clic sur le bouton retour a fermé l'application

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 91
    Par défaut
    Fen_identification est ta première fenêtre du projet ?

    J'utilise Ouvrefenetremobile et non utilise. Le bouton retour ne permet pas la sortie de l'application, sauf si c'est la première fenêtre

  11. #11
    Invité
    Invité(e)
    Par défaut
    Effectivement, Fen_identification est mon écran principal.
    Si le bouton RETOUR est appuyé sur l'écran princpal, l'application passe en arrière plan, et j'ai finalement compris que ce bouton n'existait pas sur une plateforme Ios. Pour désactiver ce bouton, je me suis basé sur cette astuce, mais ce qui n'est pas expliqué, c'est que le bouton de type abandon doit être visible, la seule piste que j'ai trouvé est de placer ce bouton en dessous d'un autre champ (champ de saisi, bouton, ...). Ah que c'est galère ça...

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Par défaut
    bonjour,

    vous pouvez très bien le mettre hors écran et mettre des ancrages si nécessaire

Discussions similaires

  1. relancer une application après une erreur critique
    Par d'Oursse dans le forum Windows
    Réponses: 9
    Dernier message: 10/01/2012, 16h17
  2. Exécuter une application après une installation
    Par ideesnoires dans le forum Dreamshield
    Réponses: 1
    Dernier message: 17/06/2009, 21h44
  3. Réponses: 7
    Dernier message: 03/03/2009, 14h08
  4. Pbl Arrêter l'application aprés une connexion à 1 BD
    Par Génie dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/11/2005, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo