JS 与 OC 交互的三种方法

第一种:使用JavaScriptCore.framework框架,JS给OC传值。

OC里要实现的代码:

在webViewDidFinishLoad:方法里编写如下代码:

JS 与 OC 交互的三种方法_第1张图片

其中:passValue 是自定义的一个函数名,要和JS代码里传值的函数名一致,得到的arg数组里面为JS那边传过来的参数。

JS里要实现的代码:(很简单)

在需要给OC传值的函数里(例如:testClick())直接调用 passValue()函数,将值传进去即可。


第二种:使用自定义url方法,JS给OC传值。

JS里要实现的代码:

JS 与 OC 交互的三种方法_第2张图片

在需要给OC传值的函数里(例如:testClick())写如上格式的代码。

其中 objc 是自定义的协议头,cmd为自定义的函数名称(我认为没什么用),hello和world为传给OC的两个值。

OC里要实现的代码:

JS 与 OC 交互的三种方法_第3张图片

第三种:使用WebViewJavascriptBridge三方库实现JS与OC的相互传值。

JS里需要实现的代码:

JS 与 OC 交互的三种方法_第4张图片

按钮点击事件代码:    点击网页上的按钮向OC传过去一个字典{'foo':'bar'},同时接收到OC传过来的一个值response。 

bridge.registerHandler 代码:  OC向JS传值时调用。

OC里需要实现的代码:

JS 与 OC 交互的三种方法_第5张图片

注释里写的很清楚,这里就不在赘述。

需要注意的是:不论哪方给哪方传值,传值的方法名称与对应接收值的方法名称要保持一致。

你可能感兴趣的:(JS 与 OC 交互的三种方法)