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];
}
}
最后編輯于 :2019.03.08 11:24:50
?著作權歸作者所有,轉載或內容合作請聯系作者 平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。