Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent iOS Webkit Long Press on Link

In an iOS app I'm developing, I show an UIWebView to allow the user to upgrade their account. The page contains links to show the user other informations, but you hold your finger on the link, a menu like this will pop up: enter image description here

As you can see, it reveals the URL of the page and the action that will be performed, which I do not want the user to see, since I don't want them to be able to copy anything as I disabled the "Copy/Cut/Paste" menu already. How would I go about disabling this menu as well?

Thanks for any pointers.

like image 848
Tristan Avatar asked Feb 04 '12 22:02

Tristan


3 Answers

I think you can disable that popup by setting the CSS -webkit-touch-callout property to none on the link. You would do this by editing the HTML or CSS file you're loading, not using Objective-C.

like image 140
rob mayoff Avatar answered Nov 20 '22 02:11

rob mayoff


If you want to both disable the popup AND user selection of text on your ENTIRE HTML PAGE, use this on the BODY of your web page or global css.

  body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
like image 20
B-Money Avatar answered Nov 20 '22 01:11

B-Money


What you want to do, as Rob already stated, is to disable the default contextual menu of UIWebView. You can achieve it by adding the following line to webViewDidFinishLoad:

   [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
like image 17
Cezar Avatar answered Nov 20 '22 01:11

Cezar