混合开发native和h5交互之JSContext(原生)

一.JSContext(方法1)
1.以前模式,实现native和web 之间交互,以前用的是第三方Hybird的框架
缺点:
a.每次都要集成Hybrid framework到工程,集成包会越来越大

b.第三方引入容易引入冲突

2.接下来准备采用的模式 用苹果自带API JSContext控件 实现native和web 之间交互

优点:简单通用,不需要集成第三方库
缺点:该API最低版本支持ios7.0
补充:由于所有webview都可以调用JSContext,所以iOS暂时不需要跟android那样封装一个webView

3JSContext如何使用
第一步引入库,同时在需要使用页面的地方引入头文件


Paste_Image.png

第二步在UIWebView的回调接口 捕获当前web view页面的JSConext(js上下文环境)
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

Paste_Image.png

第三步,根据捕获的 JSContext对象来实现native和Web之间的交互
a,场景1iOS调用js

Paste_Image.png

运行效果图


Paste_Image.png

b.场景2 js调用iOS (用的是block语句)

Paste_Image.png

运行效果图
Paste_Image.png

第四步 网页js函数参数约定
网页函数 forward(String objJson)
其中objJson 是json格式 解析出来是一个 NSDictionary,客户端根据获取他来实现业务跳转 基本上第一个是type区分业务,之后的参数就是对应type需要的参数
Paste_Image.png

该argDic 目前有如下类型,以后有需要还可以继续扩展:
type(跳转类型),url(跳转连接),subtype(子类类型), title(名字),等

Paste_Image.png

如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。

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

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,829评论 1 32
  • 前言 Web 页面中的 JS 与 iOS Native 如何交互是每个 iOS 猿必须掌握的技能。而说到 Nati...
    幽城88阅读 6,644评论 1 8
  • 跟原生开发相比,H5的开发相对来一个成熟的框架和团队来讲在开发速度和开发效率上有着比原生很大的优势,至少不用等待审...
    大冲哥阅读 5,813评论 0 7
  • 一、iOS7 之前 1. OC 调用 JS 2. JS 调用 OC 二、iOS7 之后 (JavaScriptCo...
    咖咖嘻阅读 4,775评论 0 1
  • 1.傅利叶逆变换得到原始信号 注意fft的结果是个复数,这时取绝对值得到频率对应的振幅。ifft的结果也是复数,有...
    多问Why阅读 9,662评论 0 0