OC和JS交互

在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实现代码如下:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、说明 这篇文章记录自己在研究OC与JS交互中的所得,以及遇到的问题与解决 由于苹果的审核时间太漫长,一次审核不...
    CoderSC阅读 924评论 0 5
  • JavaScriptCore中类和协议: JSContext: JavaScript上下文环境。JSContext...
    HWenj阅读 1,199评论 0 8
  • 注:JavaScriptCore API也可以用Swift来调用,本文用Objective-C来介绍。 在iOS7...
    JW_T阅读 562评论 0 0
  • OC和JS交互有三种方式:UIWebView(WKWebView)、JavaScriptCore、WebViewJ...
    第1001号群众演员阅读 529评论 0 3
  • 随着H5技术的兴起,在iOS开发过程中,难免会遇到原生应用需要和H5页面交互的问题。其中会涉及方法调用及参数传值等...
    Chris_js阅读 3,120评论 1 8