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

   

   

   

友情链接:

技术博客        简书主页

最新文章

  1. MVC实用构架设计(三)——EF-Code First(6):数据更新最佳实践
  2. C# 打印PDF文件之使用不同打印机打印所有页面或部分页面
  3. ThinkPHP_基础(1)目录结构
  4. MFC如何隐藏RibbonBar的QAT QuickAccessToolBar(快速访问工具栏)
  5. ARPSpoofing教程(二) - 获取网络设备中的详细地址信息
  6. 【BZOJ3223】 Tyvj 1729 文艺平衡树 Splay
  7. wpf:样式(转)
  8. C扩展Python
  9. ant -verbose -debug ...
  10. Spring-----4、使用Spring容器
  11. MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
  12. MySQL_DML语言
  13. 【React】开发一个城市选择控件
  14. php 使用str_replace替换关键词(兼容字符串,一维数组,多维数组)
  15. Python队列及在微信机器人中的应用
  16. 07:urllib与urllib2基本使用
  17. ngx_lua学习笔记 -- capture + proxy 实现httpclient
  18. 给idea配置默认的java jdk
  19. Chrome DevTools快捷键
  20. 【java反射】Class类型的相关操作演练

热门文章

  1. 右键添加git bush here
  2. ASP.NET FORM认证配置排错记录
  3. Linux DMA Engine framework(2)_功能介绍及解接口分析
  4. SQL优化:使用explain
  5. JavaScript的this原理
  6. php中require_once与include_once的区别
  7. hibernate映射对象三种状态的分析
  8. HTML5 Geolocation用来定位用户的位置。
  9. Unable to locate \.nuget\NuGet.exe 问题解决办法之一
  10. 使用Amoeba实现mysql读写分离机制