美文网首页
iOS 开发实现WKWebView点击事件处理,响应并处理点击事

iOS 开发实现WKWebView点击事件处理,响应并处理点击事

作者: 噜噜噜噜噜噜噜噜 | 来源:发表于2020-04-07 18:14 被阅读0次

序言

1、iOS开发中移动端和h5交互处理已经是很常用的手段,在前面的交互处理2中我们已经详细的讲过用代理拦截的方式处理h5的响应事件,这里不做更多的说明;我们今天介绍另外一种方法:WKScriptMessageHandler协议实现。

实现原理

1、JS与iOS约定好jsToOc方法,用作JS在调用iOS时的方法;
2、iOS使用WKUserContentController的-addScriptMessageHandler:name:方法监听name为jsToOc的消息;
3、JS通过window.webkit.messageHandlers.jsToOc.postMessage()的方式对jsToOc方法发送消息;
4、iOS在-userContentController:didReceiveScriptMessage:方法中读取name为jsToOc的消息数据message.body。
注册方法

说明

这里需要注意以下几点说明:
1、[userContentController addScriptMessageHandler:self name:@"jsToOc"]会引起循环引用问题。一般来说,在合适的时机removeScriptMessageHandler可以解决此问题。比如:- (void)viewDidDisappear:(BOOL)animated;
2、也可以用另外一种方式解决比如:
//自定义的WKScriptMessageHandler 是为了解决内存不释放的问题
WeakWebViewScriptMessageDelegate *weakScriptMessageDelegate = [[WeakWebViewScriptMessageDelegate alloc] initWithDelegate:self];
然后在dealloc里面移除方法并释放对象;
3、需要适配到iOS9一下系统版本,则应该设置WKWebViewConfiguration中的config.applicationNameForUserAgent为ChinaDailyForiPad;

适配方案

相关文章

网友评论

      本文标题:iOS 开发实现WKWebView点击事件处理,响应并处理点击事

      本文链接:https://www.haomeiwen.com/subject/donnphtx.html