利用WKWebView实现js与OC交互注意事项
2024-10-13 19:57:33
最近在写一些关于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代码处于全局位置或者能够确定代码所处位置,正确认识其层级关系。
友情链接:
技术博客 简书主页
最新文章
- MVC实用构架设计(三)——EF-Code First(6):数据更新最佳实践
- C# 打印PDF文件之使用不同打印机打印所有页面或部分页面
- ThinkPHP_基础(1)目录结构
- MFC如何隐藏RibbonBar的QAT QuickAccessToolBar(快速访问工具栏)
- ARPSpoofing教程(二) - 获取网络设备中的详细地址信息
- 【BZOJ3223】 Tyvj 1729 文艺平衡树 Splay
- wpf:样式(转)
- C扩展Python
- ant -verbose -debug ...
- Spring-----4、使用Spring容器
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
- MySQL_DML语言
- 【React】开发一个城市选择控件
- php 使用str_replace替换关键词(兼容字符串,一维数组,多维数组)
- Python队列及在微信机器人中的应用
- 07:urllib与urllib2基本使用
- ngx_lua学习笔记 -- capture + proxy 实现httpclient
- 给idea配置默认的java jdk
- Chrome DevTools快捷键
- 【java反射】Class类型的相关操作演练
热门文章
- 右键添加git bush here
- ASP.NET FORM认证配置排错记录
- Linux DMA Engine framework(2)_功能介绍及解接口分析
- SQL优化:使用explain
- JavaScript的this原理
- php中require_once与include_once的区别
- hibernate映射对象三种状态的分析
- HTML5 Geolocation用来定位用户的位置。
- Unable to locate \.nuget\NuGet.exe 问题解决办法之一
- 使用Amoeba实现mysql读写分离机制