前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS:WKWebView JS 交互这点事

iOS:WKWebView JS 交互这点事

作者头像
菜菜不吃蔡
发布2018-08-03 16:35:00
1.7K0
发布2018-08-03 16:35:00
举报
文章被收录于专栏:编程语言编程语言

WKWebView 适用于iOS8之后的系统

引用

代码语言:javascript
复制
#import <WebKit/WebKit.h>

1.OC调用JS

代码语言:javascript
复制
   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)遵循代理

代码语言:javascript
复制
@interface SharecgiteViewController ()<WKNavigationDelegate,WKScriptMessageHandler>

(2)添加方法监听

代码语言:javascript
复制
 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)代理方法实现

代码语言:javascript
复制
#pragma mark - WKScriptMessageHandler

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

(4)HTML中使用方法

代码语言:javascript
复制
window.webkit.messageHandlers.share.postMessage(message);

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

代码语言:javascript
复制
 WKUserContentController *controller = self.wkWebView.configuration.userContentController;
    [controller removeScriptMessageHandlerForName:@"share"];
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年06月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档