WKWebView的交互

一 现在WKWebView是官方推荐的,在iOS8.0以上的版本都能使用,而且加载速度提高到了很多,虽说它不兼容iOS7.0-iOS8.0,但是还是有非常多的iOS开发者,直接忽略这部分用户,原因就是提升用户体验,我接触的很多人就是直接用WKWebView,

特别重要:UIWebView和WKWebView这两个交互无论前端还是后端他们的交互方法都不一样,都需要写2套,这里说WKWebview就着重说wk吧 后端必须这么写,你才能看到交互的方法被执行。jsParamFunc2:这是约定的方法名 您的订货量超出库存:这个是传的参数,这里传的是字符串,如果多个参数,可以传字典

  window.webkit.messageHandlers.jsParamFunc2.postMessage("您的订货量超出库存");

话不多说,直接上代码首先导入

#import <WebKit/WebKit.h>

再遵循遵循三个代理 ,最后一个是交互的代理,必须使用否则无法实现

WKNavigationDelegate,WKUIDelegate,WKScriptMessageHandler


定义一个属性 ,用懒加载

-(WKWebView*)myWebView{

    

    if (!_myWebView) {

        WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];

        

        WKUserContentController* userContent = [[WKUserContentController alloc] init];

        

        [userContent addScriptMessageHandler:self name:@"jsParamFunc2"];

       config.userContentController = userContent;

        

        self.myWebView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:config];

        

        self.myWebView.backgroundColor = [UIColor whiteColor];

        self.myWebView.UIDelegate = self;

        self.myWebView.navigationDelegate = self;

        

    }

    return _myWebView;

}

再加载一个html网页:

WKUserContentController *userContentController = [[WKUserContentController alloc] init];

    [userContentController addScriptMessageHandler:self name:@"jsParamFunc2"];

    WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];

    configuration.userContentController = userContentController;

    

    [self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@" "]]];

    [self.view addSubview:self.myWebView];


然后加载出来点击,下面这个就是交互的方法

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

    if ([@"jsParamFunc2" isEqualToString:message.name]) {

        NSLog(@"message.body %@",message.body);

        // 判断message的内容,然后做相应的操作

        

    }

}


message.body  这个就是你交互的后端传给你的值很明显我接收到的是 您的订货量超出库存 没写过几次写的不好敬请谅解


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值