首页 > 代码库 > URL 以及 UIWebView

URL 以及 UIWebView


         


URL 只是一个 路径 :
          协议头:// 域名/ 资源 (就是要查询的内容)  
           比如http://m.baidu.com/s?word=iOS 
          上面的是 手机版的域名   

UIWebView : 
    也是一个IOS 程序的控件   能拖   能用代码实现  能设置代理 
             nUIWebViewiOS内置的浏览器控件,可以浏览网页打开文档
     n能够加载html/htmpdfdocxtxt等格式的文件
     n系统自带的Safari浏览器就是通过UIWebView实现的
     niOS7之前,UILabelUITextField,以及UITextView都在后台以某种方式使用WebKit来进行文本布     局和渲染的

     n名词解释
     n渲染:是CG的最后一道工序,将所设计内容制作成最终效果图或者动画的过程

利用UIWebView 加载资源  演示代码

           -NSURL 确定要访问的网络资源
           -NSURLRequest 建立网络请求
 
     >> 模拟加载百度
          // 1.确定要访问的资源——URL
         NSURL *url= [NSURLURLWithString:@"http://www.baidu.com"];

     // 2.建立网络请求
         NSURLRequest*request = [NSURLRequestrequestWithURL:url];

     // 3.UIWebView加载网络请求
         [self.webViewloadRequest:request];

   >>  点击搜索栏调用  (搜索栏代理方法)
               // 开始搜索
           - (void)searchBarSearchButtonClicked:(UISearchBar*)searchBar
   {     
                NSString*str=searchBar.text;
        // 1.判断是否以http开头,如果没有则用百度搜索
         if (![strhasPrefix:@"http://"]) {
         str= [NSStringstringWithFormat:@"http://m.baidu.com/s?word=%@",str];
    }
        // 2.URL中,如果包含中文字符串,需要将字符串转换为带百分号的格式
    NSURL *url= [NSURLURLWithString:[strstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    ....
}


  >>  当需要回退或者前进时 需要用到代理 (事例程序)
     #pragma mark -UIWebView代理方法
           #pragma mark  - 完成加载,页面链表数据会更新
     - (void)webViewDidFinishLoad:(UIWebView*)webView
     {     
                  self.goBackButton.enabled=self.webView.canGoBack;
        self.goForwardButton.enabled=self.webView.canGoForward;
     }



>>> Mime Type  :

     说白了 Mime  Type 就是在 客户端与服务器对话的一个中转站   
     当客户端给服务端发送请求之后  服务端会给客户端一些 保存在Mime Type里面的数据 
     然后 客户端一般会用WebView 读取;  利用 (loadData: MIMEType :textEncondingName: baseURL: )方法



总而言之:
                    (1)网络通过二进制数据流的方式可以传输任何格式的数据
                    (2)客户端通过通过MimeType就能够知道如何处理接收到的数据

     nURL & Request 向服务器发送请求
     nResponse 响应,服务器告诉客户端我给了你什么

   演示代码:
     #pragma 以二进制数据的形式加载文件
    - (void)loadDataFile {   

        // 最最常见的一种情况   

        // 打开IE,访问网站,提示你安装Flash插件   

       // 如果没有这个应用程序,是无法用UIWebView打开对应的文件的       

       // 应用场景:加载从服务器上下载的文件,例如pdf,或者word,图片等等文件   

       // 加载路径    NSURL *fileURL = [[NSBundlemainBundle] URLForResource:@"iOS 7 Programming Cookbook.pdf"withExtension:nil];   

      // 向服务器发送请求    NSURLRequest *request = [NSURLRequestrequestWithURL:fileURL];   

         // 服务器的响应对象,服务器接收到请求返回给客户端的    NSURLResponse *respnose = nil;   

      // 服务器返回的数据    NSData *data = http://www.mamicode.com/[NSURLConnectionsendSynchronousRequest:request returningResponse:&respnose error:NULL];       

        // iOS开发中,如果不是特殊要求,所有的文本编码都是用UTF8   

      // 先用UTF8解释接收到的二进制数据流   

      // webView 读取   

      [self.webViewloadData:data MIMEType:respnose.MIMETypetextEncodingName:@"UTF8"baseURL:nil]; }