iOS开发系列Realank的iOS专题M_iOS

禁用iOS Webview Default Action默认操作

2015-12-25  本文已影响1172人  NikoXu

Default Action##

iOS 给Webview带来了一些系统级的touch响应,它丰富我们的交互体验。但在特别的场景下,这些手势又不太符合我们的需求。
常见的default action如下:

IMG_0846.PNG
IMG_0847.PNG
IMG_0848.PNG

如何取消这些功能##

从html来控制###

1.整个页面禁用

<head>
<style>
     body.disable-default-action
    {
    //禁用长按呼出功能菜单
    -webkit-touch-callout:none ;
    //禁用用户元素选择
    -webkit-user-select:none ;
    }
</style>
</head>
<body class = "disable-default-action">
    //your code...
</body>

2.只允许Form表单域执行文本的剪切板操作

*:not(input,textarea) {
    -webkit-touch-callout: none;
    -webkit-user-select: none; 
}

3.禁用某个链接的长按弹出框

<a href="http://www.baidu.com" style = "-webkit-touch-callout:none">

在native进行控制###

从UIWebview或者WKWebview继承,在相应代理方法里加上下面的代码

- (void)webViewDidFinishLoad:(UIWebView *)webView {
   // 禁用用户选择
   [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];
    
   // 禁用长按弹出框
   [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"];
}

参考原文:IOS之禁用UIWebView的默认交互行为

上一篇 下一篇

猜你喜欢

热点阅读