Deep linking to specific screen

  • Deep linking to specific screen

    Posté par Lamia sur 24 janvier 2022 à 9h47

    Hello tout le monde,

    Je viens vers vous cra j’aimerais envoyer un lien, via un bouton, d’un écran spécific, à l’époque on utilisait On start mais cette manipulation ne fonctionne plus. Auriez vous une soltuion à ce problème?
    Merci à vous et bonne journée 😃

    PostID=PUQn5fvB5eZ9EWm

    Lamia a répondu Il y a 11 mois, 3 semaines 1 Membre · 15 Réponses
  • 15 Réponses
  • Pierre

    Membre
    24 janvier 2022 à 11h18

    Bonjour Lamia, pour preciser ta question c’est que tu cherches à aller sur un écran spécifique via une URL ? Car le StartScreen est arrivé dernièrement :

    CommentID=0dSxObNiDnzi8sd, PostID=PUQn5fvB5eZ9EWm

  • Lamia

    Membre
    24 janvier 2022 à 13h59

    merci d’avoir répondu à ma question ! le seul problème c’est que je n’arrive pas à lier cela à un bouton. Le lien me ramène à chaque fois vers le premier écran de mon application

    CommentID=4gqRSXBdDmsgY81, PostID=PUQn5fvB5eZ9EWm

  • R3dKap

    Membre
    26 janvier 2022 à 20h47

    Si tu veux cliquer sur un bouton pour ouvrir une url dans un autre onglet, tu peux utiliser la fonction Launch().

    Mais je suis pas certain que ce soit ce que tu cherches car tu parles du OnStart. Que faisais-tu exactement dans ton OnStart auparavant et qui ne marche plus maintenant ? Ce lien est censé t’amener où ? Vers un autre site ? S’agit-il vraiment d’un lien ou le terme n’est peut-être pas le bon…

    Aide-nous à t’aider… 😉

    CommentID=E6tKpYsf0a5N6dl, PostID=PUQn5fvB5eZ9EWm

  • Lamia

    Membre
    27 janvier 2022 à 16h09

    Je vais essayer d’être plus claire haha

    J’ai créer un formulaire que les utilisateurs devront compléter et j’aimerais créer un bouton pour les admins afin qu’ils puissent envoyer l’écran où se situe le formulaire, aux autres utilisateurs.
    Mais ces utilisateurs là ne doivent avoir accès qu’à cette écran là. J’ai donc chercher différentes manières de faire cela. Avant, il suffisait de le faire via OnStart pour que cela fonctionne. Mais cette fonction ne fonctionne plus, je cherche donc une alternative à cela.

    J’espère avoir été plus claire cette fois-ci 😅

    CommentID=eRiUGNdhP0Mtny2, PostID=PUQn5fvB5eZ9EWm

  • R3dKap

    Membre
    27 janvier 2022 à 21h12

    Merci @Lamia. Je vais essayer de reformuler pour voir si j’ai bien compris.

    Tu as créé une application Power Apps dans laquelle il y a (au moins) 2 écrans : 1 écran pour les admins, un écran pour les utilisateurs.

    Sur l’écran pour les utilisateurs il y a un formulaire qu’ils doivent remplir.

    Sur l’écran des Admins il y a un bouton qui permet d’envoyer un email aux utilisateurs avec un lien dans cet email. Lorsqu’un utilisateur clique sur le lien de cet email il doit arriver directement dans l’application sur l’écran du formulaire.

    Est-ce que c’est ça ?

    CommentID=82eQ2mslQKAEr7A, PostID=PUQn5fvB5eZ9EWm

  • Lamia

    Membre
    28 janvier 2022 à 12h46

    Oui voilà c’est exactement ça !

    CommentID=tma2AwVVW1YKf3G, PostID=PUQn5fvB5eZ9EWm

  • R3dKap

    Membre
    28 janvier 2022 à 20h32

    D’accord… Alors à ce moment-là la solution décrite par @Pierre Bourdial était la bonne : utiliser le StartScreen pour définir quel est le premier écran que l’application doit afficher.

    Mais avant ça il faut que tu aies un moyen pour ton application de différencier un admin d’un utilisateur classique. Par exemple tu peux avoir une liste SharePoint appelée Administrateurs dans laquelle tu as une colonne Admin de type Personne où tu renseigneras les utilisateurs qui sont des administrateurs pour cette application.

    A ce moment-là, sur l’objet App de ton application, tu choisis la propriété StartScreen :

    Et tu y mets ce code :

    If(n    IsBlank(n        LookUp(n        Administrateurs; n        Admin.Email = User().Emailn    )n    'Ecran Formulaire'n    'Ecran Admin';n)

    En gros, avec le LookUp() on recherche dans la liste des Administrateurs s’il y a un utilisateur qui correspond à l’utilisateur actuellement connecté, identifié avec la fonction User(). Si on n’en trouve pas (IsBlank()), c’est que l’utilisateur connecté n’est pas un administrateur et donc le premier écran que l’application va afficher c’est celui du formulaire. Dans le cas contraire, on a trouvé un administrateur dans la liste et donc c’est l’écran des admins qui est affiché.

    Est-ce que cela réponds à ton besoin ?

    Dis-nous si tu y arrives ou pas… Si tu bloques, pense à nous mettre une capture d’écran du problème en nous donnant le maximum d’informations.

    CommentID=6PBeTSfAQeCJ1xF, PostID=PUQn5fvB5eZ9EWm

  • Lamia

    Membre
    31 janvier 2022 à 11h02

    Merci beaucoup pour la solution, ça a l’air de plutot bien fonctionné. Il y a juste un petit problème, lorsque je mets à jour ma liste Admin, les paramètre ne se mettent pas à jour. Donc une personne qui était dans la liste Admin mais qui ne l’est plus, a toujours accès à l’écran Admin, avec le même lien. Comment faire pour que la personne qui n’est plus Admin ne puisse avoir accès qu’à l’écran formulaire?

    CommentID=ELTX9epefHdxsah, PostID=PUQn5fvB5eZ9EWm

  • R3dKap

    Membre
    2 février 2022 à 16h10

    Mmmmh… Etrange. Car l’application recharge la liste des admins à chaque fois qu’elle se lance. Donc entre 2 lancement si tu retires une personne de la liste je ne vois pas pourquoi elle aurait encore accès à l’écran Admin. Peut-être faut-il vérifier le test qui détermine si tu vas sur l’écran utilisateur ou l’écran admin…

    Peut-être si tu peux me mettre une capture du code que tu as dans ton App.StartScreen

    CommentID=jmlCC8UGxnp0xlq, PostID=PUQn5fvB5eZ9EWm

  • Lamia

    Membre
    7 février 2022 à 15h03

    voici le code !

    CommentID=TIQj4JJcGCagQ6y, PostID=PUQn5fvB5eZ9EWm

  • R3dKap

    Membre
    9 février 2022 à 9h09

    Ca m’a l’air simple, clair et correct… Essaie peut-être de faire un CTRL-F5 sur l’onglet qui exécute ton application après avoir retiré une personne de la liste des admins… Peut-être garde-t-il des données en cache…

    CommentID=uiTriHnmI4xoLSn, PostID=PUQn5fvB5eZ9EWm

  • R3dKap

    Membre
    9 février 2022 à 9h10

    Pour débugger le truc, tu peux peut-être aussi afficher sur les 2 écrans une galerie qui affiche simplement le contenu de ta liste des administrateurs… histoire de voir si effectivement la personne a bien disparu de la liste…

    CommentID=f4DJXAYufT9zE66, PostID=PUQn5fvB5eZ9EWm

  • Lamia

    Membre
    16 février 2022 à 14h26

    J’ai afficher sur les 2 écrans une galerie qui affiche ma liste Administrateur, et effectivement quand il y a une personne dans la liste il affcihe bien la personne, et lorsque la personne disparait son nom disparait aussi mais pour cela je dois faire une CTRL F5, car il ne le fait pas automatiquement.

    Malgré cela, l’affichage du 1er écran de l’application ne change pas

    CommentID=7vUN52Ti63qpF3U, PostID=PUQn5fvB5eZ9EWm

  • R3dKap

    Membre
    17 février 2022 à 15h05

    Alors juste une précision (passke évidemment je ne vois pas exactement la manière dont tu fais le test)…

    Si tu fais ceci :

    • dans ta liste tu as un admin TOTO

    • tu lances ton application

    • tu arrives sur l’écran d’admin et dans ta galerie tu vois TOTO

    • tu retires TOTO de la liste des admins

    • tu retournes sur ton application sans rafraîchir la page (ni avec F5 ni avec CTRL-F5)

    Alors c’est normal que ça ne marche pas.

    Après avoir retiré TOTO de ta liste il te faut à minima faire un F5 sur l’onglet où tu avais ton application pour qu’elle se relance et qu’elle recharge les données depuis ta liste.

    Est-ce que ça tu l’avais bien compris ?

    Si oui et que même avec un F5 ça ne marche pas et que ça ne marche qu’avec un CTRL-F5 (mais je serais quand même surpris), essaie ceci…

    Dans le OnStart de ton App rafraîchi ta source de données :

    Refresh(Administrateur)

    Puis dans les options de ton application, désactive l’option suivante :

    Sauvegarde, publie ton application et reteste (attention il faut toujours attendre environ 15s entre le moment où tu publies ton application et le moment où la nouvelle version s’exécutera lors tu la lanceras -> l’idéal c’est de mettre un petit numéro de version quelque part que tu changes à chaque fois que tu republies ton app ; comme ça tu es sûre lorsque tu vois le numéro de version que tu viens de modifier que c’est la dernière version de ton app qui s’exécute).

    Tiens moi au courant…

    CommentID=UqGQEMoldnY0DYU, PostID=PUQn5fvB5eZ9EWm

  • Lamia

    Membre
    17 février 2022 à 17h33

    Tout fonctionne comme sur des roulettes !

    Merci beaucoup pour votre aide, !!

    CommentID=nHGr9KGt0DGTBO2, PostID=PUQn5fvB5eZ9EWm

Connectez-vous pour répondre.