iOS开发 原生页面 和 H5交互
2019-02-14 本文已影响0人
就是西柚吖
1.Hybrid相关
在Hybird架构中,原生界面和web页面需要频繁的沟通,并且是双向的沟通。
原生代码可以构建JavaScript语句,交由webview进行执行,从而在web页面上实现需要的效果。
![](https://img.haomeiwen.com/i16285138/975a70f8f9fcf9df.png)
![](https://img.haomeiwen.com/i16285138/b7244593a40fd9ab.png)
在web页面的js文件中,也可以调用原生的Objective-C方法,从而执行一些原生方法才能完成的操作。与此相关的库有WebViewJavascriptBridge以及JavaScriptCore,有需要的同学可以自行了解。
2.UIWebview的相关特性
webview的代理方法大家想必非常熟悉,我们可以在页面加载前、开始加载时、加载完成时以及失败时进行需要的操作。这里我们需要用到的是这一条代理方法:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
webview根据它的返回结果来决定是否进行加载。
![](https://img.haomeiwen.com/i16285138/56229afdb8a222f2.png)