繁体   English   中英

防止iOS Webkit长按链接

[英]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)"

您的ontouchendonclick属性仍然有效


如果你想再次看到正常的蓝色/下划线外观,你可以添加这个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM