WKWebView的使用和JS交互

参考文章:
IOS WKWebview 使用集锦
WKwebView和JS交互
自己的OCdemo
自己的swiftDemo

JS调用OC的方法

1、首先要实现一个协议WKScriptMessageHandler

WKWebView的使用和JS交互_第1张图片
1.png

2、在初始化WebView时,配置config
2.png

在dealloc里移除
-(void)removeScriptMessageHandlerForName:(NSString *)name;
3、处理和实现方法

/**
 根据方法名做相应的处理

 @param userContentController userContentController description
 @param message message description
 */
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message{
    //message.name,message.body,message.frameInfo
    if ([message.name isEqualToString:@"WXPay"]) {
        dispatch_async(dispatch_get_main_queue(), ^{
            
        });
    }

至此,H5调用OC的方法已完成

OC调用JS方法

在WebView加载完成后调用

#pragma mark- ------------------------OC 调用JS方法
    //OC调用JS的方法:getImages()是方法名和参数
    [_webView evaluateJavaScript:@"getImages()" completionHandler:^(id _Nullable script, NSError * _Nullable error) {
        //代码出错可以在这里处理
    }];
 //pragma mark- ------------------------swift 调用JS方法
//在这里我调用的是点击sendAPP按钮的方法(注意打印结果输出,我们并没有点击按钮,但是输出了fuction1方法)
        webView.evaluateJavaScript("sendApp()")  { (result, error) in
            guard error == nil else {
                print("there was an error")
                print(error)
                return
            }
            
        }

你可能感兴趣的:(WKWebView的使用和JS交互)