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

来源:互联网 发布:直播就是网络乞丐 编辑:程序博客网 时间:2024/06/06 13:12

           虽然使用原生的代码书写功能可以使应用的功能更加稳定,用户体验更佳完美,但是由于原生代码书写功能会受到审核时间相对较长,灵活性不足,页面不精彩的因素的限制,近些年来,很多的开发者都在致力于开发出来易于改写,方便发布,完成及时性页面修改等功能的语言脚本,方法和框架,比如React,React-native以及cordova框架等。

      现在我们就从基本的交互开始,来研究一下不使用第三方的框架和方法,如何实现js和原生的交互。我们知道原生iOS提供了UIWebView(虽然现在在弱化使用,但是依然是使用最多的网页加载控件)进行网页页面的加载和处理,现在我们就使用UIWebView加载本地的html来进行演示。在本地编辑并保存文件index.html,然后使用如下代码进行页面加载。

   运行之后我们看到了只有一张图片和一个按钮的简单界面,我们现在假设点击按钮触发一个事件,然后在原生里进行获取事件时机,然后刷新出来一个百度的界面。

我们首先给页面上的button添加一个click事件,并定义点击事件:



然后运行程序,点击,在我们实现的代理方法里输出一下,看一下我们收到了什么样的网络请求:


没错就是我们刚才从h5发出去的请求,所以我们可以根据解析请求的url数据来接收来自h5的交互请求,但是我们发出该请求主要是为了拦截数据,而不是为了请求网页数据,所以返回false,同时为了让其他的请罪正常进行,我们使用判断只拦截我们在h5发送的请求。


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




0 0
原创粉丝点击