Html5和OC交互的简单用法

调用webView加载页面暂时先不说这边只讲方法之间的交互

1.JS调OC的方法

首先在父类中导入JS框架,创建webView,遵守协议方法

Html5和OC交互的简单用法_第1张图片
我的理解是,通过路径获取JS的环境,然后将本身这个类传给JS,这里app是跟JS调用的时候约定好的类名
Html5和OC交互的简单用法_第2张图片
可以看JS这边的代码就明白了,js这边通过这个类名来调用OC类中的方法

问题来了,就是怎么让JS中知道传过来的app中有什么方法呢

Html5和OC交互的简单用法_第3张图片

定义一个协议,继承JSExport,JSExport也是一个协议,但是什么东西都没有,这里我也不明白为啥继承了它就能调到方法了!(至于这里的方法命和作用,我们是用马克飞象写一个文档给前端)

注意:这里协议中方法的写法是很讲究的哦!

Html5和OC交互的简单用法_第4张图片

看图说话:

1.没参数没返回值的方法:直接用OC的写法

2.没参数但是有返回值的方法:直接用OC的写法

3.有返回值的方法:以下图中的写法

PropertyName:JS中调用带参数方法的名字

Selector:OC的方法全名

下图是JS中调用OC对应有参数的方法

这样只要在.m中写下方法实现就可以了,下面是截图的.h和.m的截图代码


Html5和OC交互的简单用法_第5张图片
Html5和OC交互的简单用法_第6张图片

2.OC调JS的方法

比如在封装webView类的子类中创建了一个button:

Html5和OC交互的简单用法_第7张图片

实现button的点击方法中调用JS的show()方法

Html5和OC交互的简单用法_第8张图片

对比下JS这边的代码就知道

Html5和OC交互的简单用法_第9张图片

调用JS方法,运行结果:

Html5和OC交互的简单用法_第10张图片

这里只是个例子,其实最后这个OC调 JS的方法也封装在父类中,到时候子类直接调就可以了。以上仅供参考还有更多不同情况根据需求处理

(更新中...)

你可能感兴趣的:(Html5和OC交互的简单用法)