`

UIWebView使用技巧2以及UIWebviewDelegate使用

    博客分类:
  • ios
阅读更多

 

详细参考:

 

http://blog.csdn.net/cococoolwhj/article/details/7019828

 

http://blog.sina.com.cn/s/blog_68501a5e010110hr.html

 

webView加载内容有三个方法:

– loadData:MIMEType:textEncodingName:baseURL:

这个方法没有使用过

– loadHTMLString:baseURL:

 

– loadRequest:

通过request加载一个page,只能加载整个html文件。代码:

 

 UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    NSURL *url =[NSURL URLWithString:URL_LOGIN];
    NSURLRequest *request =[NSURLRequest requestWithURL:url];
    [webView loadRequest:request];

 

 

 

 

UIWebViewDelegate 

 

– webView:shouldStartLoadWithRequest:navigationType:( 将要请求,还未请求)

这里会有三个参数:webview 当前的webview,可以通过webview的URL获取当前现实的网址

request 将要发起的request请求,即使是在ajax中打开新页面也会调用该方法

navigationType开始加载request时,用户的行为

– webViewDidStartLoad: (请求已经开始)

发送一个reeust请求时调用哪个(在ajax中请求不调用该方法)

– webViewDidFinishLoad:(请求结束)

当一个请求结束时调用该方法(在ajax中请求不调用该方法)

– webView:didFailLoadWithError:

请求失败时调用该方法(在ajax中请求不调用该方法)

 

设置UIWebView的user agent

    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"GuoKr-IOS-1.5", @"UserAgent", nil];

    [[NSUserDefaultsstandardUserDefaults] registerDefaults:dictionary];

      user agent可以用来表示浏览器,不同版本的浏览器有不同的user agent。服务器可以根据不同的user agent做出不同的反应。例如区分移动浏览器和pc浏览器,显示不同内容。 

在代码中可以通过下面的代码获取当前控件的UA:

NSString *ua = [request valueForHTTPHeaderField:@"User-Agent"];

如果只是想修改某个reqeust的UA,可以在– webView:shouldStartLoadWithRequest:navigationType:中修改代码如下:

需要使用NSMutableRequest来修改reuqest

 

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSMutableURLRequest *mRequest = [NSMutableURLRequest requestWithURL:request.URL cachePolicy:request.cachePolicy timeoutInterval:request.timeoutInterval];
    
//    NSString *ua = [request valueForHTTPHeaderField:@"User-Agent"];
//    NSLog(@"%@",ua);
    
    NSString *temp = [NSString stringWithFormat:@"%@ GuoKr-IOS/1.5",[request valueForHTTPHeaderField:@"User-Agent"]];
    [mRequest setValue:temp forHTTPHeaderField:@"User-Agent"];
    request = mRequest;
    
//    NSString *ua1 = [request valueForHTTPHeaderField:@"User-Agent"];
//    NSLog(@"%@",ua1);
    
    return YES;
}

另一种方法:
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Your user agent", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];
 参考:http://stackoverflow.com/questions/478387/change-user-agent-in-uiwebview-iphone-sdk

 

 

 

设置代理:http://www.oschina.net/question/54100_38005

 

 

 

分享到:
评论

相关推荐

    iOS开发之UIWebView

    这篇博客文章“iOS开发之UIWebView”可能详细介绍了如何在iOS项目中使用UIWebView以及其相关的一些实践技巧。 UIWebView的主要功能包括加载HTML、CSS、JavaScript等Web资源,执行JavaScript代码并与Objective-C或...

    IOS--UIWebView加载进度条(NJKWebViewProgress)

    在iOS开发中,UIWebView是苹果提供的一种用于展示网页内容的控件,它可以加载HTML、CSS、...同时,NJKWebViewProgress的使用也展示了如何通过代理模式和自定义视图来增强原生控件的功能,这是iOS开发中常见的技巧。

    iOS中UIWebView网页加载组件的基础及使用技巧实例

    以下是一些关于UIWebView的基础知识和使用技巧: **1. UIWebView的基本用法** UIWebView的创建通常在`viewDidLoad`方法中完成。首先,我们需要初始化一个UIWebView对象,并设置其frame来确定在屏幕上的位置和大小...

    iOS的web 与 js 交互

    在`UIWebView`中,我们可以使用`UIWebViewDelegate`的`webView(_:shouldStartLoadWith:completionHandler:)`方法监听页面的加载事件,从而进行交互。例如,当点击某个链接时,我们可以在代理方法中处理。 ```swift ...

    【一步一步学IOS5 】 Storyboard 创建Tab Bar控制器和Web视图

    在本教程“一步一步学iOS5”中,我们将深入探讨如何利用Storyboard创建一个Tab Bar控制器以及集成Web视图。这个过程对于任何希望创建具有多页面导航和网络内容展示的iOS应用来说都是至关重要的。 首先,让我们理解...

Global site tag (gtag.js) - Google Analytics