Предотвратить iOS Webkit Длительное нажатие на ссылку - PullRequest
19 голосов
/ 05 февраля 2012

В разрабатываемом приложении для iOS я показываю UIWebView, чтобы позволить пользователю обновить свою учетную запись.Страница содержит ссылки, чтобы показать пользователю другую информацию, но вы держите палец на ссылке, появится следующее меню: enter image description here

Как вы видите, он показывает URL-адрес страницы идействие, которое будет выполнено, и которое я не хочу, чтобы пользователь видел, поскольку я не хочу, чтобы они могли что-либо копировать, поскольку я уже отключил меню «Копировать / Вырезать / Вставить».Как мне отключить это меню?

Спасибо за любые указатели.

Ответы [ 4 ]

35 голосов
/ 05 февраля 2012

Я думаю, что вы можете отключить это всплывающее окно, установив свойство CSS -webkit-touch-callout в none в ссылке. Это можно сделать, отредактировав загружаемый файл HTML или CSS, не используя Objective-C.

17 голосов
/ 21 марта 2013

Что вы хотите сделать, как уже сказано Роб , - отключить контекстное меню по умолчанию UIWebView.Вы можете добиться этого, добавив следующую строку в webViewDidFinishLoad:

   [webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
13 голосов
/ 14 июня 2014

Если вы хотите отключить всплывающее окно И , выделенное пользователем для выбора текста на ВСЕХ СТРАНИЦАХ HTML , используйте это для ТЕЛА вашей веб-страницы или глобального 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;
}
0 голосов
/ 31 мая 2015

Нет необходимости сообщать браузеру, что у вас есть ссылка, а затем заставить ее не вести себя как одна!

Просто удалите href="void(0)" полностью!

Ваши атрибуты ontouchend или onclick будут по-прежнему работать .


Если вам снова нужен нормальный синий / подчеркнутый вид, вы можете добавить это css:

a .originalLink { color: blue; text-decoration: underline; cursor: pointer; }

Это экономит много циклов ЦП, особенно когда на странице сотни ссылок, а пользователь плавно прокручивает.

Вы также можете расширить это на обычные URL, используя это:

<a class="originalLink" onclick="location.href='http://mylink';">Real URL Link</a>

Конечно, ваш SEO находится за окном, но для конкретной ситуации с мобильным веб-приложением это может быть критическим.

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...