美文网首页
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