最近在写一些关于wkwebview的一些代码,发现了几点心得,记录一下。
1.js调用OC
我是利用wkwebview进行的开发实现,主要代码有三部分
1.向config注入OC对象
[config.userContentController addScriptMessageHandler:self name:@"YHModel" ];
2.js中书写调用方法:
window.webkit.messageHandlers.YHModel.postMessage({ ???????????height: $("html").height()});
3.完成OC回调方法
//js > OC- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message{ ???if ([message.name isEqualToString:@"YHModel"]) { ???????CGFloat height = [[message.body valueForKey:@"height"] floatValue]; ???}}
2.OC调用js
同样是利用wkwebview中的代码,实现起来分为两部分:
1.OC中代码
[webView evaluateJavaScript:@"compeleteFlag=true" completionHandler:nil];
2.js中代码
var compeleteFlag = false;var timeintervalFunction = setInterval(function() {var widthValue = $("#progross").width();$("#progross").width(widthValue + space); ???if(widthValue >= $("#progrossPart").width() || compeleteFlag) { ??????????????$("#progross").width($("#progrossPart").width()); ?????????clearInterval(timeintervalFunction); ?????????$("#progrossPart").fadeOut(); ??????}}, 1000);
应当注意的是:
1.js回调OC时,应判断所获取的值是不是真实存在。
2.OC调用js代码时应该保证,js代码处于全局位置或者能够确定代码所处位置,正确认识其层级关系。
? ?
? ?
? ?
友情链接:
技术博客 ???????简书主页