1、OC调JS的方法
JS要做的准备:
//提供给oc调用的JS方法
function ocToJs()
{
//随机改变页面的背景色
var r=Math.floor(Math.random()*256);
var g=Math.floor(Math.random()*256);
var b=Math.floor(Math.random()*256);
var randomColor = "rgb("+r+','+g+','+b+")";
document.body.style.backgroundColor = randomColor;
}
OC要做的准备wkwebview调用evaluateJavaScript:
//OC-->JS
- (void)ocTakeJsMethod
{
//OC调js的方法随机改变html页面的颜色
NSString *ocToJs = @"ocToJs()";
[self.myWebView evaluateJavaScript:ocToJs completionHandler:^(id _Nullable name, NSError * _Nullable error) {
NSLog(@"方法调用完成回调");
}];
}
2、JS调OC的方法
JS要做的准备实现一个方法:
//js调OC的方法
function jsToOc()
{
//jsSendOcWithPrams是要在OC那边注册才可以的。
window.webkit.messageHandlers.jsSendOcWithPrams.postMessage({"oneParam":"传过去的参数内容"});
}
OC要做的准备分为两步
第一步:要注册相应的方法提供给JS调用
//WKUserContentController注册一个html的方法
[userController addScriptMessageHandler:self name:@"jsSendOcWithPrams"];
第二步:用代理接- (void)userContentController:(WKUserContentController *)userContentController
didReceiveScriptMessage:(WKScriptMessage *)message收来自JS的方法
//JS-->OC
- (void)userContentController:(WKUserContentController *)userContentController
didReceiveScriptMessage:(WKScriptMessage *)message
{
NSLog(@"userContentControllerfdfjdik----%@---%@",message.body,message.name);
if ([message.name isEqualToString:@"jsSendOcWithPrams"])
{
NSString *keyContent = message.body[@"oneParam"];
UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"提示" message:keyContent preferredStyle:UIAlertControllerStyleAlert];
[alertVC addAction:([UIAlertAction actionWithTitle:@"OC显示" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
}])];
[self presentViewController:alertVC animated:YES completion:nil];
}
}
网友评论