iOS WKWebView 与 js 交互
来源:互联网 发布:js防水怎么样 编辑:程序博客网 时间:2024/05/19 22:56
iOS8之后苹果推荐使用WKWebView替代UIWebView,其主要的有点有:
WKWebView更多的支持HTML5的特性
WKWebView更快,占用内存可能只有UIWebView的1/3 ~ 1/4
WKWebView高达60fps的滚动刷新率和丰富的内置手势
WKWebView具有Safari相同的JavaScript引擎
WKWebView增加了加载进度属性
关于 WKWebView 的具体使用方法在这里就不细细阐述了, 网上的各路大佬已经说的够详细了.
最近在项目中遇到了这样的一种情景, 在 web 网页上触发一个事件, 然后用native 做一些处理. 这差不多就是嵌入网页的 app 最常见的一个情景了, 下面给大家介绍wkwebView 如何处理这种情景:
1.与 js 端确定一个名字
//需要 js 传数据给 iOSwindow.webkit.messageHandlers.msgHandlerName.postMessage({key:'value'});//不需要传数据给 iOSwindow.webkit.messageHandlers.msgHandlerName.postMessage(null);
js 端主要是通过上面这行代码来传给 ios 一些数据, 其中的 msgHandlerName
就是要和 js 端确定的名称.
2.添加 script 监听
WKUserContentController *controller = [[WKUserContentController alloc] init]; [controller addScriptMessageHandler:self name:@"msgHandlerName"];
3.实现 WKScriptMessageHandler 协议方法
wkwebView 的WKScriptMessageHandler协议方法是:
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message;
在这个方法里可以通过 message.name 来判断js 端是否触发了事件.完整代码:
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message{if ([message.name isEqualToString:@"msgHandlerName"]) { // do something }}
以上就是 js 调用 oc 的全部流程, 不对之处, 还望不吝指正!
阅读全文
0 0
- iOS WKWebView 与 js 交互
- iOS WKWebView与JS交互
- ios WKWebView 与 JS 交互实战技巧
- iOS WKWebView js交互
- WKWebView与js交互
- WKWebView与JS交互
- WKWebView与JS交互
- WKWebView与js交互
- WKWebView与JS交互
- WKWebView与js交互
- WKWebView 与 JS 交互
- WKWebView与js交互
- iOS-WKWebView特性以及与JS交互的一些事
- iOS下OC与JS的交互(WKWebview-MessageHandler实现)
- iOS开发中的WKWebView与JS的交互
- oc与js交互-----WKWebView
- WKWebView与JS的交互
- WKWebView 与JS的交互
- [霍尔定理]「2017 山东一轮集训 Day2」LOJ 6062——PAIR
- 如何利用github打造博客专属域名
- scala基础总结
- 到银联的调试过程,总结,记录
- 应届生求职指南(一)- 序言
- iOS WKWebView 与 js 交互
- Inkscape将位图转换为矢量图
- 新开博客
- 初识----Spring Boot的微框架
- C_栈的应用----数制转换
- 异步fifo设计(四)
- 文章标题
- SSIS控件无法设置断点
- 关于shell-----2