1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WM Besoin d'aide pour l'implémentation d'un system de verrouillage temporaire de l'application android

Discussion dans 'Windev Mobile' créé par Dikens, Jan 10, 2024.

  1. Dikens

    Dikens New Member

    Inscrit:
    Mar 10, 2021
    Messages:
    5
    J'aime reçus:
    0
    Bonjour team.
    Je souhaite réaliser un systeme de verrouillage de l'application après une certaine durée d'inactivité de l'utilisateur.
    merci de me faire part de vos idées et si possible les codes pouvant me permetre de solutionner mon problème.
     
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,885
    J'aime reçus:
    1,533
    Salut tu met un chrono en place
    A la fin du chrono, tu quittes.
     
    WX1331, Isabelle et suenodesign aiment ça.
  3. Dikens

    Dikens New Member

    Inscrit:
    Mar 10, 2021
    Messages:
    5
    J'aime reçus:
    0

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Salut tu met un chrono en place
    A la fin du chrono, tu quittes.
    Cliquez pour agrandir...
    Salut, merci pour ta reponse rapide. En effet ma difficulté dans ce cas de figure c'est comment savoir si l'utilisateur a interagi ou non avec l'application dans l'interval de temps défini dans le chrono
     
  • Dikens

    Dikens New Member

    Inscrit:
    Mar 10, 2021
    Messages:
    5
    J'aime reçus:
    0
    j'ai un code qui fonctionne correctement dans Android Studio mais je ne sais pas comment m'y prendre pour l'intégrer dans windev mobile.
    En effet j'affiche juste une alerte après un période inactivité d'une (1) minutes.
    voici le code:

    1) - InactivityDetector.java

    package com.dikens.verroullage_ecran;
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.os.Handler;
    import android.os.Looper;
    import android.view.MotionEvent;
    import android.view.View;

    public class InactivityDetector implements View.OnTouchListener {

    private static final long INACTIVITY_DELAY = 60 * 1000; // 5 minutes en millisecondes
    private Handler inactivityHandler;
    private Runnable inactivityRunnable;
    private AlertDialog.Builder alertDialogBuilder;
    private AlertDialog alertDialog;

    public InactivityDetector(final View rootView) {
    inactivityHandler = new Handler(Looper.getMainLooper());
    inactivityRunnable = new Runnable() {
    @Override
    public void run() {
    // Afficher l'alerte ici
    alertDialog.show();
    }
    };

    alertDialogBuilder = new AlertDialog.Builder(rootView.getContext());
    alertDialogBuilder.setMessage("Votre session va expirer.");
    alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
    // Réinitialiser le délai d'inactivité lorsque l'utilisateur répond à l'alerte
    resetInactivityTimer();
    }
    });

    alertDialog = alertDialogBuilder.create();
    rootView.setOnTouchListener(this);

    // Démarre le minuteur pour la première fois
    resetInactivityTimer();
    }

    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
    // Réinitialise le minuteur lorsque l'utilisateur interagit avec l'écran
    resetInactivityTimer();
    return false;
    }

    private void resetInactivityTimer() {
    inactivityHandler.removeCallbacks(inactivityRunnable);
    inactivityHandler.postDelayed(inactivityRunnable, INACTIVITY_DELAY);
    }
    }

    2) - MainActivity.java
    package com.dikens.verroullage_ecran;

    import androidx.appcompat.app.AppCompatActivity;

    import android.os.Bundle;
    import android.view.View;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    View rootView = findViewById(android.R.id.content);
    InactivityDetector inactivityDetector = new InactivityDetector(rootView);
    }

    }


    Merci d'avance pour votre aide
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,885
    J'aime reçus:
    1,533
    Franchement, y a plus simple
    Dès que l'utilisateur clique sur un bouton
    Ou sur tous les évènements de l'application
    Tu réinitialise le chrono
    En plus tu as fait un code java
    Alors que tu peux très bien le faire en wlanguage.
     
    WX1331 et Gemini1961 aiment ça.
  • Dikens

    Dikens New Member

    Inscrit:
    Mar 10, 2021
    Messages:
    5
    J'aime reçus:
    0

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Franchement, y a plus simple
    Dès que l'utilisateur clique sur un bouton
    Ou sur tous les évènements de l'application
    Tu réinitialise le chrono
    En plus tu as fait un code java
    Alors que tu peux très bien le faire en wlanguage.
    Cliquez pour agrandir...
    ok pas mal ta solution, même si dans mon cas je dois mettre mon code de vérification de l'interaction de l'utilisateur dans toutes les 389 écrans de mon application.
     
  • Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    297
    J'aime reçus:
    211
    La classe cACTIVITE dans une des LST permet de faire tout celà :

    Classe permettant de surveiller l'activité de l'utilisateur
    Utilisation d'un Timer et capture d'événements Windows.
    Permet au choix :
    - l'arrêt de l'application après un certain temps d'inutilisation. Dans ce cas un message d'information averti l'utilisateur de la fermeture de l'application.
    - d'exécuter une procédure de l'application.
     
    WX1331 apprécie ceci.
  • Dikens

    Dikens New Member

    Inscrit:
    Mar 10, 2021
    Messages:
    5
    J'aime reçus:
    0

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    La classe cACTIVITE dans une des LST permet de faire tout celà :

    Classe permettant de surveiller l'activité de l'utilisateur
    Utilisation d'un Timer et capture d'événements Windows.
    Permet au choix :
    - l'arrêt de l'application après un certain temps d'inutilisation. Dans ce cas un message d'information averti l'utilisateur de la fermeture de l'application.
    - d'exécuter une procédure de l'application.
    Cliquez pour agrandir...
    Hello Isabelle, merci pour ta réponse.
    Puis-je savoir laquelle des LST et les versions de windev mobile concerné ?
    Moi j'utilise la version 28.
     
  • Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    297
    J'aime reçus:
    211
    Bonsoir Dikens,

    Moi je suis restée à la 20.
    Et il a toujours été hors de question que je fasse chauffer ma CB pour la LST.
    Mais si tu fais une recherche du contenu des LST sur le site de PCSoft, tu trouveras ton bonheur.
    Et puis il y en aura bien un parmi nous qui va chercher à ta place.
     
  • Partager cette page

    Chargement...