WKWebView 屏蔽長按手勢 - iOS


研究半天還跟正常套路不一樣,WKWebView 需要將 JS 注入進去,套路啊 ... 

查半天資料,為了后者們開發可以提高效率,特此分享一下,不到的地方多多包涵哈.

廢話不多說,直接上 code,將如下 code 直接 copy 進 WKWebView 控件實例化的地方即可.

//禁止長按彈出 UIMenuController 相關

//禁止選擇 css 配置相關

NSString*css = @"body{-webkit-user-select:none;-webkit-user-drag:none;}";

//css 選中樣式取消

NSMutableString*javascript = [NSMutableStringstring];

[javascript appendString:@"var style = document.createElement('style');"];

[javascript appendString:@"style.type = 'text/css';"];

[javascript appendFormat:@"var cssContent = document.createTextNode('%@');", css];

[javascript appendString:@"style.appendChild(cssContent);"];

[javascript appendString:@"document.body.appendChild(style);"];

[javascript appendString:@"document.documentElement.style.webkitUserSelect='none';"];//禁止選擇

[javascript appendString:@"document.documentElement.style.webkitTouchCallout='none';"];//禁止長按

//javascript 注入

WKUserScript *noneSelectScript = [[WKUserScript alloc] initWithSource:javascript

injectionTime:WKUserScriptInjectionTimeAtDocumentEnd

forMainFrameOnly:YES];

WKUserContentController*userContentController = [[WKUserContentControlleralloc] init];

[userContentController addUserScript:noneSelectScript];

WKWebViewConfiguration*configuration = [[WKWebViewConfigurationalloc] init];

configuration.userContentController = userContentController;



//控件加載

[self.wkWebView.configuration.userContentControlleraddUserScript:noneSelectScript];

Over, 以上分享如有什么不周的地方還請大家多多指點!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM