禁用iOS Webview Default Action默认操作

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的默认交互行为

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容