美文网首页
WKWebView与Web JS简单交互与解耦

WKWebView与Web JS简单交互与解耦

作者: livesxu | 来源:发表于2020-05-22 22:37 被阅读0次

OC调用JS

- (void)evaluateJavaScript:(NSString*)javaScriptString completionHandler:(void(^_Nullable)(_Nullableid,NSError*_Nullableerror))completionHandler;

示例:

oc to js

JS调用OC(我称之为JS事件截取)

1.添加事件监听- (void)addScriptMessageHandler:(id)scriptMessageHandler name:(NSString *)name;

name就是你要截取的事件名

2.要实现一个delegate WKScriptMessageHandler

- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message;

3.需要移除监听- (void)removeScriptMessageHandlerForName:(NSString *)name;

添加 回调 移除

跟KVO相像,但是这个比KVO坑。

!!!注意!!!

在dealloc一般是移除不了的,因为self持有webview,webview持有configuration.userContentController,userContentController强引用self。所以需要使用NSProxy解耦。

详见:demo

相关文章

网友评论

      本文标题:WKWebView与Web JS简单交互与解耦

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