研究半天還跟正常套路不一樣,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, 以上分享如有什么不周的地方還請大家多多指點!