Éviter les demandes d'autorisations liées à l'accessibilité avec CGEvent.tapCreate
Salut,
J'ai un soucis, j'utilise CGEvent.tapCreate
pour espionner les drag sessions dans une app. L'intérêt est de savoir quand le drag sort de la fenêtre ou y revient et s'y adapter.
Le soucis c'est que l'utilisateur se retrouve avec ça :
C'est louable mais dans les faits je ne monitore pas les touches, juste l'emplacement de la souris. D'après la doc je n'ai besoin d'aucune autorisation pour le faire et dans les faits c'est le cas: quelque soit la réponse que je donne ça fonctionnera quand même.
Qu'est-ce que ça fait ? Me demanderez-vous, alors étonnés. Je vous répondrai simplement par une autre question : z'avez jamais vu un utilisateur ou quoi ?. Oui c'est dédaigneux. Mais on sait que ce genre de popup peut avoir un impact négatif sur certains et découler sur des reviews négatives.
Encore une question, donc, quelqu'un sait comment s'en passer quand on utilise CGEvent.tapCreate
? Ou une alternative, c'est bien aussi, la découverte.
Réponses
Normalement on peux pas s'en passer
Quelques infos ici: https://docs.google.com/presentation/d/1nEaiPUduh1vjks0rDVRTcJaEULbSWWh1tVdG2HF_XSU/htmlpresent
Ouais alors c'est plus compliqué que ça. Et pas forcément documenté.
CGEvent.tapCreate
va fonctionner comme le local monitor deNSEvent
quelle que soit les autorisations qui lui sont données. Donc tant que l'application est active ça fonctionne.MAIS ! Dans mon cas, le drag&drop permettant d'activer une application en la survolant, mon application n'est plus active. Alors le tap va fonctionner comme un global monitor et là il faut que les autorisations soient données (celles liées à l'accessibilité) pour que ça puisse continuer à recevoir les events.
Donc j'ai pas le choix.