防止iOS Webkit长按链接
在我正在开发的iOS应用程序中,我展示了一个UIWebView
以允许用户升级其帐户。 该页面包含显示用户其他信息的链接,但是您将手指放在链接上,会popup如下菜单:
正如你所看到的,它揭示了页面的URL和将要执行的操作,我不希望用户看到,因为我不希望他们能够复制任何东西,因为我禁用了“复制/剪切/粘贴“菜单。 我怎么去禁用这个菜单呢?
感谢任何指针。
我想你可以通过在链接上设置CSS -webkit-touch-callout
属性为none
来禁用popup窗口。 你可以通过编辑你正在加载的HTML或CSS文件来完成,而不是使用Objective-C。
正如Rob已经指出的那样,你想要做的就是禁用UIWebView
的默认上下文菜单。 您可以通过webViewDidFinishLoad:
添加到webViewDidFinishLoad:
来实现它webViewDidFinishLoad:
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
如果要同时禁用popup窗口和用户select整个HTML页面上的文本,请在网页的BODY或全局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>
当然,你的search引擎优化是窗口,但对于特定的移动networking应用程序的情况下,这可能是至关重要的。
快乐的编码!
- 如何开始在iPhone上锁屏播放音乐
- 什么是核心audio错误561015905,为什么当我使用lockingbutton时会发生?
- 如何清除IOS应用程序库caching(下载的图像)
- animationControllerForPresentedController和animateTransition之间的自定义过渡animation未知延迟
- types'Int32'不符合协议'AnyObject'Swift?
- 图标与iOS 6和Xcode 5.0的光泽
- imageNamed是邪恶的 – 如何使用该function
- iPhone应用程序链接到应用程序商店,但显示空白页面,而不是应用程序下载
- 自动将生成的源文件添加到xcode项目