在OC与JS交互时要导入#import<JavaScriptCore/JavaScriptCore.h>
1.创建一个webview,加载目标html文件。
2.要清楚html文件的内容,了解js的函数。
3.iOS调用html中的方法,使用系统自带的具体实现如下:
//oc调用html的方法 =====前提是html方法中存在
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"showTitleMessage('%@')",@"oc调用了js的内容"]];
//showTitleMessage 为html中的函数
4.js调用OC方法,首先在iOS端实现js中已经定义但未实现的函数,具体如下:
//获取上下文文件(相当一个操作的方法工具,用于获取html中的方法和其它)
JSContext *content = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
/**
* 为html中的方法赋值,定义html中bdgt的方法内容
*任意html函数中的bdgt(参数);格式的变量,都可以通过上下文获取到并进行复制操作,调用oc的方法。
即content[@"begt"]=^(){}
*
*/
content[@"bdgt"] = ^() {
NSLog(@"js调用oc---------begin--------");
//获取html中bdgt的参数返回一个数组
NSArray *thisArr = [JSContext currentArguments];
for (JSValue *jsValue in thisArr) {
NSLog(@"=======%@",jsValue);
}
//获取调用html方法的对象
JSValue *this = [JSContext currentThis];
NSLog(@"this: %@",this);
NSLog(@"js调用oc---------The End-------");
};
html代码如下:
OC实现代码如下: