网页和原生代码的交互(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WangErice/article/details/52593138

 解析方法

    我们了解和h5和原生代码交互的原理之后,现在我们尝试解析由h5发送出来的请求中的方法名和参数。

     在上篇文章中我们使用window.open()方法发送了一个请求,但是该请求并没有说明我们我们需要调用哪个方法。如果我们对应一个请求可能会需要调用多个不同的方法的时候,就需要在请求中把识别方法的参数传递过去。

     为此我们在请求后拼接方法参数,改一下请求的格式:后边的openBaidu就是我们在原生控制器里书写的方法,


         在控制器中,获取该参数名称,然后使用类的映射机制将方法字符串转化为方法选择器,相关代码如下:


   然后运行程序点击,点击按钮,我们就再一次看到了熟悉的百度界面。

   解析参数

  好了,现在我们来解析参数,根据以上分析的过程,我们知道参数也应该在NSRequest中的NSURL参数中解析出来,所以现在我们将http://www.baidu.com参数写在h5的请求中,我们将h5中请求改写成如下形式:


然后我们解析出相应的方法名和参数,即可完成交互:


然后点击按钮,页面刷新为百度的界面。如果想要开打其他的网页,只需要替换掉相应的参数。当然请求的字符串也可以通过其他方式进行拼接,比如

gfdapp://openWebView/url=www.baidu.com

只要按照统一的约定来进行解析就可以了。

猜你喜欢

转载自blog.csdn.net/WangErice/article/details/52593138