混合开发(iOS与H5)混编的重要性不言而喻,一个移动端开发的了解前端开发是一个趋向,总之每个人都向往成为一个全栈工程师,废话不多说,直接上主题JSContext非常方便,推荐使用,
1:创建一个NSObject名字为WCJSObject
一:WCJSObject.h继承WCJSObjectProtocol
WCJSObjectProtocol实现主要是用于H5页面调,方便调用写法如:本次介绍的主要是以goBack为例
WCJSObjectProtocol实现添加一个block,H5调goBack方法后回调
property(nonatomic,copy)void(^goBackBlock)()二:WCJSObject.m
实现方法-(void)goBack{
self.goBackBBlock();
}
2:在webview中监听js调取App的方法
a:首先导入头文件
#import“WCJSObject.h”
#importJavaScriptCore/JavaScriptCore.h
实例化一个contex
property(strong,nonatomic)JSContext*contex;b:然后在webViewDidFinishLoad中实现如下:
//创建一个JSContext对象,通过webview获取到jscontext
self.contex=[webviewvalueForKeyPath:
documentView.webView.mainFrame.javaScriptContext];//创建类对象
WCJSObject*jsObject=[WCJSObjectnew];
//实现回调jsObject.goBackBlock=^{//在这里实现返回的代码即可
};
c:最后将jsObject对象赋值给contex的listener中//重点:listener是和H5协商好的,只要一样就可以
self.contex[
listener]=jsObject;到这里,完成了所有的App端的业务代码!下边介绍H5如何调,很简单
htmlhead//实现方法functiongoBack(){window.listener.goBack();//listener是和H5协商好的,只要一样就可以}/headbody//模拟一个按钮buttononclick=goBack()goBack/button/body/html
结束语:在正确的道路上用笨方法,只要坚持,你就会成功!如果您对这边文章有什么意见或者建议,请评论与我讨论如果你觉得还不错的话或者刚好帮到你~可以点个喜欢鼓励我哦如果你想和我一起学习,请毫不吝啬的私信我吧万水千山总是情,给个[爱心]