原文链接
我们可以添加些脚本到这个用户配置中,这启发了我
- (WKWebView *)webView{
if (!_webView) {
//创建WKWebview配置对象
WKWebViewConfiguration*config = [[WKWebViewConfiguration alloc] init];
config.preferences = [[WKPreferences alloc] init];
config.preferences.minimumFontSize =10;
config.preferences.javaScriptEnabled =YES;
config.preferences.javaScriptCanOpenWindowsAutomatically =NO;
NSMutableString *javascript = [NSMutableString string];
[javascript appendString:@"document.documentElement.style.webkitTouchCallout='none';"];//禁止长按
[javascript appendString:@"document.documentElement.style.webkitUserSelect='none';"];//禁止选择
WKUserScript *noneSelectScript = [[WKUserScript alloc] initWithSource:javascript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
//创建webView
WKWebView *webView = [[WKWebView alloc]initWithFrame:[UIScreen mainScreen].bounds configuration:config];
[webView.configuration.userContentController addUserScript:noneSelectScript];
webView.UIDelegate = self;
webView.navigationDelegate = self;
webView.backgroundColor = [UIColor whiteColor];
webView.scrollView.scrollEnabled = YES;
[webView addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew context:nil];
_webView = webView;
}
return _webView;
}
也可以直接执行JS , 这样的话要等载入完成后再执行- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
[self.webView evaluateJavaScript:@"document.documentElement.style.webkitTouchCallout='none';" completionHandler:nil];
[self.webView evaluateJavaScript:@"document.documentElement.style.webkitUserSelect='none';"completionHandler:nil];
}
评论
发表评论