OC和JS交互

2016-10-22

公司因为运营推广的原因,通常需要在自己的原生的app产品上做推广,而开发出一个新版原生app到上线,往往跟不上市场推广、营销的步伐。因此混合型应用受到很多公司青睐,但是开发混合型应用设计到技术点无非就是web端和手机移动终端的交互。此篇文章将向大家介绍,iOS的OC与web端的js交互。

交互方式

  1. iOS7之后的JavaScriptCore
  2. 拦截协议
  3. 第三方框架WebViewJavaScriptBridge
  4. iOS8之后WKWebView

    其中WebViewJavaScriptBridge是基于拦截协议的封装,需要同学们看文档,这里不做介绍

    WKWebView对于iOS7的系统的手机无法使用,因此也不作介绍

OC执行JS代码

1 . 获取web页面的标题 title

 NSString *webTitle = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];

2 . 获取web页面的链接 url

    NSString *url = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];

3 . 关于JavaScriptCore

    JavaScriptCore中的类及协议
    
  • JSContext:给JavaScript提供运行的上下文环境
  • JSValue:JavaScript和Object-C数据和方法的桥梁
  • JSManagedValue:管理数据和方法的类
  • JSVirtualMachine:处理线程相关,使用较少
  • JSExport:一个协议,如果采用协议的方法交互,自己定义的协议必须遵循此协议
  • 4 . 代码示例:
    点击下载