webView 通过 userContentController 注册一个MSInfo的自定义消息;前端需要在播放视频按钮被点击时候捕捉这个点击事件并且调用 window.webkit.messageHandlers.iOSIOV.postMessage(['MSInfo','{key:value}]) 把这个事件发给iOS端iOS端通过didReceiveScriptMessage:接受事件前提是前端可以捕捉到点击事件WKUserContentController* userContentController =[[WKUserContentController alloc]init]; //注册message [userContentController addScriptMessageHandler:self name:@"MSInfo"]; WKWebViewConfiguration * configuration = [[WKWebViewConfiguration alloc]init]; configuration.userContentController = userContentController; configuration.preferences.javaScriptEnabled = YES; WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, 300, 500) configuration:configuration]; //前端通过这种方法发消息 //window.webkit.messageHandlers.iOSIOV.postMessage(['MSInfo','{key:value}']) //接受从前端收到的消息;webView 的代理方法 - (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message { if ([message.name isEqualToString:@"MSInfo"]) { NSString *para = @"{}"; //调用前端方法传值 [message.webView evaluateJavaScript:@"JSCallBack(%@);",para] completionHandler:^(id _Nullable dic, NSError * _Nullable error) { }]; } } } }
前提是前端可以捕捉到点击事件