123 votes

Désactiver la sélection de l’utilisateur dans UIWebView

J'ai une application dans laquelle je charge le contenu d'une UIWebView et de le présenter. Je ne peut pas désactiver l'interaction de l'utilisateur car je veux que l'utilisateur puisse cliquer sur les liens. J'ai juste besoin de désactiver la sélection de l'utilisateur. J'ai trouvé quelque part dans les Internets que vous pouvez utiliser:

document.body.style.webkitUserSelect='none';

J'ai essayé d'insérer ce que

[self.contentView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitUserSelect='none';"]; 

en webViewDidFinishLoad:

Toutefois, il ne fonctionne pas. Je suis encore capable de sélectionner et copier du texte à l'intérieur de la WebView.

Toutes les Idées de ce qui pourrait mal se passer?

Mise à jour: Cela ne semble se produire à partir de l'iOS 4.3

280voto

WrightsCS Points 32170

Voici quelques méthodes pour désactiver la sélection :

Ajoutez le code suivant à vos documents web mobile

La charge par programme le code Javascript suivant :

Désactiver la copie / coller menu utilisateur :

104voto

TPoschel Points 1341

Je peux confirmer que le code suivant fonctionne en iOS 5.0-7.0.

26voto

Johno Scott Points 1075

J’utilise cette technique dans une web app pour Android / iPhone (fourni avec Trigger.IO) et a trouvé cela fonctionne seulement avec la syntaxe chaînage pour les : not() pseudo-classe, :

18voto

pablobart Points 419

J’aime la solution de WrightsCS mais je vais l’utiliser afin que les utilisateurs peuvent toujours en utilisant le copier, de coller et de sélectionner des actions sur les intrants

9voto

Bittu Points 466

Je ne sais pas comment l’installation se faite, mais pourquoi ne pas vous dégager simplement la table de montage lorsque viewWillDisappear est appelé. Peut-être quelque chose comme dans votre appDelegate.m :

Ceci s’assurera que tout utilisateur de données pourrait avoir copié, ils ne seront pas en mesure de le coller à l’extérieur de l’app.

En outre, comme Engin dit que vous pouvez substituer la méthode canPerformSelector dans la classe de contrôleur qui contient l’uiwebview.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X