OC和JS交互

在OC与JS交互时要导入#import

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和JS交互_第1张图片

OC实现代码如下:


OC和JS交互_第2张图片

你可能感兴趣的:(OC和JS交互)