OC与H5交互具体方法实现

1. 基本使用- OC调JS

- (void)webViewDidFinishLoad:(UIWebView*)webView{

//js方法名+参数 NSString* jsCode = [NSString stringWithFormat:@"report('%@')",self.jsStr];//调用html页面的js方法

[webView stringByEvaluatingJavaScriptFromString:jsCode]; }

JS调OC

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{

// 拦截url,进行处理returnYES; }

2.使用JavaScriptCore框架(ios7以后)

JavaScriptCore中类及协议

JSContext:JavaScript 运行的上下文环境

JSValue:JavaScript 和 Objective-C 数据和方法的桥梁

JSExport:这是一个协议,如果采用协议的方法交互,自己定义的协议必须遵守此协议

JSManagedValue:管理数据和方法的类

JSVirtualMachine:处理线程相关,使用较少JavaScript 调用 Native使用 JavaScriptCore 进行 JS 和 Native 的交互,无论想要实现什么样的效果都需要获得一个有效的 JSContext 实例,即一个有效的 JS 运行的上下文。

3.使用第三方库WebViewJavascriptBridge

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

推荐阅读更多精彩内容

  • 随着H5技术的兴起,在iOS开发过程中,难免会遇到原生应用需要和H5页面交互的问题。其中会涉及方法调用及参数传值等...
    Chris_js阅读 8,280评论 1 8
  • 前言 Web 页面中的 JS 与 iOS Native 如何交互是每个 iOS 猿必须掌握的技能。而说到 Nati...
    幽城88阅读 6,623评论 1 8
  • JavaScriptCore框架主要是用来实现iOS与H5的交互。由于现在混合编程越来越多,H5的相对讲多,所以研...
    水灵芳蕥阅读 5,268评论 1 8
  • JSBridge 1. Why do we need JSBridge? 2. Why is “JS”Bridge...
    loveqin阅读 13,064评论 0 7
  • 有一页能书写的纸没有文字, 我闲着没事儿给它写上几行。 有一家不起眼的小书店, 我欣然钻进去逛上一逛。 有一条长的...
    木貞ma阅读 2,286评论 1 2