在iphone中的uiwebview中获取和设置用户代理?

时间:2010-06-24 07:41:15

标签: iphone iphone-sdk-3.0

我正在尝试将网址中的图像显示到我的UIWebview中但是图像尺寸太小而无法通过拉伸使其显示而不显示它。因为我无法自动调整图像大小(因为它变得模糊)我正在考虑获取和设置iphone的用户代理价值...但是我无法找到关于它的相关信息,我也不确定它是否会起作用?任何人都知道如何实现它?

2 个答案:

答案 0 :(得分:1)

如果您实施了UIWebViewDelegate课程,则可以使用webView:shouldStartLoadWithRequest:navigationType:获取请求 - 此时您应该可以操作请求,例如

[request setValue:@"your custom useragent" forHTTPHeaderField:@"User-Agent"];

答案 1 :(得分:0)

获取用户代理,您可以尝试使用javascript like this或在@cem的答案中,您可以实施webView:shouldStartLoadWithRequest:navigationType:然后< em>读取传递给UIWebViewDelegate的请求对象的头字段:

[request valueForHTTPHeaderField:@"User-Agent"];

对于设置UIWebViewDelegate方法对我来说对iOS 5不起作用。也许过去确实如此。

对我有用的实际上是为UserAgent键定义应用程序范围的用户默认值(这不是拼写错误... User 代理)。

在我的app委托中,我使用了初始化程序,在创建任何UIWebViewsNSURLRequests之前设置此值:

+ (void) initialize {
    // TODO: put in whatever custom user agent you want here:
    NSString* userAgent = @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19";

    NSDictionary* initDefaults = [[NSDictionary alloc] initWithObjectsAndKeys:
                                  userAgent, @"UserAgent",
                                  nil];

    [[NSUserDefaults standardUserDefaults] registerDefaults:initDefaults];  
}

注意:如果您不使用ARC,请记得在上面的代码段中发布initDefaults