简单介绍UIWebView
关于UIWebView这里我就不多介绍了,可以简单理解为一个在iOS 端显示网页的一个控件;
UIWebView的使用
它既然也是view,当然就可以像其他view一样的创建,如下:
<pre><code> UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 560)];
webView.delegate = self;//先在此设置下代理,等下会实现其代理方法</code></pre>
当然这是创建一个对象,想要加载一个网页还需要实现loadRequest:
这个方法;这时你会发现该方法需要一个NSURLRequest
类型的参数;那简单我们就来创建一个又如何;我们使用NSURLRequest的类方法requestWithURL:
来创建;咦,又会发现这个类方法需要一个NSURL
类型的参数;不管了,那就先创建NSURL对象吧;
<pre><code>
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
[webView loadRequest:[NSURLRequest requestWithURL:url];</code></pre>
切记后面一定要是一个可访问的网址;
最后,因为它也是View,别忘记加到父视图上
<pre><code>[self.view addSubview:webView];</code></pre>
既然要实现与原生系统的交互,那就不得不实现它的代理方法
<pre><code>-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSString urlStr = request.URL.absoluteString; //取出webView交互的url链接;
//根据urlStr链接中的参数,去push到系统中的任何页面都可以的
/实现code
.....
*/
return YES;
}</code></pre>
<b>附加说明</b>:urlStr是网页中,点击带有响应,传过来的网址,这个网址要看你服务端给的什么内容,针对内容去跳转到对象的页面(如:是一个头像的点击,则跳转到对应的用户信息,这是网址中,服务端就应该封装的有对应的用户的ID);
该代理方法返回值是BOOL类型的,所以当你需要用webView来显示的时候,一定要返回YES; 至于跳转到App内其他页面就没有这么讲究了,YES or NO all ok; 建议返回NO, 以免出现多次跳转;
如果服务端需要传参数进去(如:token) ,这是你就需要在创建NSURL
对象时,将token封装进去
<pre>[NSURL URLWithString:@"http://www.baidu.com?token=pzshgawegwegeugiwef93i24"]</pre>