iOS:WKWebView JS 交互这点事

WKWebView 适用于iOS8之后的系统

引用

#import <WebKit/WebKit.h>

1.OC调用JS

   NSString *jsmethod = [NSString stringWithFormat:@"mymethd(\"%@\")",data]; //data(NSDate)为要传给js的数据
        [self.wkWebView  evaluateJavaScript:jsmethod completionHandler:^(id _Nullable result, NSError * _Nullable error) {
//   result  js返回值
        }];

2.JS调用OC

(1)遵循代理

@interface SharecgiteViewController ()<WKNavigationDelegate,WKScriptMessageHandler>

(2)添加方法监听

 WKWebViewConfiguration *webviewConfig = [[WKWebViewConfiguration alloc] init];
        webviewConfig.userContentController = wkUController;
        [webviewConfig.userContentController addScriptMessageHandler:self name:@"share"];
        
        WKWebView  *webView = [[WKWebView alloc ] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 64) configuration:webviewConfig];

(3)代理方法实现

#pragma mark - WKScriptMessageHandler

- (void)userContentController:(WKUserContentController *)userContentController
      didReceiveScriptMessage:(WKScriptMessage *)message {
    
    if ([message.name isEqualToString: @"share"]) {
        NSLog(@"%@",message.body);
    }
    
}

(4)HTML中使用方法

window.webkit.messageHandlers.share.postMessage(message);

(5)释放js交互,在页面推出的时候,调用

 WKUserContentController *controller = self.wkWebView.configuration.userContentController;
    [controller removeScriptMessageHandlerForName:@"share"];

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程语言

iOS 无弹框换图标,直接用就可以了

        对于iOS,是开发了API可以换图标,但是有规定的,就是你要换的图标是要在APP里面内置的,也就是说你要换的APPicon,是提前放在APP包里...

822
来自专栏雨尘分享

iOS 和 H5 交互那些事 (UIWebView、WKWebView 总结篇)

1.2K5
来自专栏移动端开发

WKWebView的使用与JS交互详细解读

前言:     WKWebView 这是在iOS8.0之后增加的一个比UIWebView更加完善和强大的控件!看网上关于它的博客也是有许多的了,从各个方面总结一...

4267
来自专栏iOS开发随笔

WKWebView不显示JS的Alert,Confirm,TextInput弹框解决方法

1823
来自专栏编程语言

iOS 无弹框换图标,直接用就可以了

        对于iOS,是开发了API可以换图标,但是有规定的,就是你要换的图标是要在APP里面内置的,也就是说你要换的APPicon,是提前放在APP 包...

881
来自专栏移动端周边技术扩展

解决H5微信支付返回跳转问题

7723
来自专栏Python疯子

Swift - 网页控件(UIWebView)加载本地数据,文件

使用UIWebView加载本地数据或资源有如下三种方式: 1,使用 **loadHTMLString **方法加载HTML内容 2,使用 **loadReq...

740
来自专栏DannyHoo的专栏

浅谈iOS中的WKWebView添加cookie

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

1311
来自专栏移动端周边技术扩展

WKWebView实现简单的轻应用WKWebViewWKWebView与js交互

1623
来自专栏哈雷彗星撞地球

iOS下JS与OC互相调用(二)--WKWebView 拦截URL

在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互。 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WK...

1825

扫码关注云+社区

领取腾讯云代金券