# JS与WKWebview交互
程序员文章站
2024-03-01 09:14:40
...
JS与WKWebview交互
1.ios调用js方法
比如js方法:
function callJS(x){
alert(x);
return "ok";
}
ios执行这个方法并传值,同时接收js返回值“ok”:
[webView evaluateJavaScript:@"callJS('这是iOS消息')" completionHandler:^(id _Nullable item, NSError * _Nullable error) {
NSLog(@"%@",item);
}];
2.js调用ios方法
首先WKWebView像js注册一个方法:
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:config];
[config.userContentController addScriptMessageHandler:self name:@"showMessage"];
这里注册了一个 showMessage 方法,
然后js发起调用并传了一个参数:
window.webkit.messageHandlers.showMessage.postMessage("js调用了iOS中的showMessage方法");
值得注意的是,js调用ios的方法固定格式为:
window.webkit.messageHandlers.<name>.postMessage(<messageBody>) for all
然后ios收到消息:
-(void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message
{
//JS调用OC方法
//message.boby就是JS里传过来的参数
NSLog(@"body:%@",message.body);
if ([message.name isEqualToString:@"showMessage"]) {
}
}
上一篇: java实现单链表
下一篇: 分享一个漂亮的php验证码类