[英]Prevent iOS Webkit Long Press on Link
在我正在开发的iOS应用程序中,我展示了一个UIWebView
,允许用户升级他们的帐户。 该页面包含显示用户其他信息的链接,但您将手指放在链接上,会弹出如下菜单:
正如您所看到的,它显示了页面的URL和将要执行的操作,我不希望用户看到它,因为我不希望它们能够复制任何内容,因为我禁用了“复制/剪切/粘贴“菜单已经。 我该如何禁用此菜单?
谢谢你的任何指示。
我认为您可以通过在链接上将CSS -webkit-touch-callout
属性设置为none
来禁用该弹出窗口。 您可以通过编辑正在加载的HTML或CSS文件来执行此操作,而不是使用Objective-C。
正如Rob所说,你想要做的是禁用UIWebView
的默认上下文菜单。 您可以通过webViewDidFinishLoad:
添加到webViewDidFinishLoad:
来实现它webViewDidFinishLoad:
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
如果要同时禁用整个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;
}
无需告诉浏览器您有链接,然后强迫它不要表现得像一个!
完全删除href="void(0)"
!
您的ontouchend
或onclick
属性仍然有效 。
如果你想再次看到正常的蓝色/下划线外观,你可以添加这个css:
a .originalLink { color: blue; text-decoration: underline; cursor: pointer; }
这节省了大量CPU周期,尤其是当用户平滑滚动时页面中有数百个链接。
您还可以使用以下内容将其扩展为常规URL:
<a class="originalLink" onclick="location.href='http://mylink';">Real URL Link</a>
当然,你的搜索引擎优化不在窗口,但对于特定的移动网络应用情况,这可能是至关重要的。
快乐的编码!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.