码迷,mamicode.com
首页 > Web开发 > 详细

利用WKWebView实现js与OC交互注意事项

时间:2018-03-19 11:42:32      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:https   conf   down   lua   on()   script   .post   block   javascrip   

最近在写一些关于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代码处于全局位置或者能够确定代码所处位置,正确认识其层级关系。

? ?
? ?
? ?

友情链接:

技术博客 ???????简书主页

利用WKWebView实现js与OC交互注意事项

标签:https   conf   down   lua   on()   script   .post   block   javascrip   

原文地址:https://www.cnblogs.com/tig666666/p/8600724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!