1

我有一个UIWebView适合我拥有的论坛的移动风格。在 Safari 中,它看起来和工作都很棒。

但是,在我的内部UIWebView存在一个重大问题。

引用或编辑帖子时,HTML 会显示在BBcode. 此外,发布代码会导致忽略换行符。此问题将使我的应用程序完全无法使用。

webview 是这样加载的:

  //display the webview
    NSString *fullURL = @"http://www.mysite.com";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSMutableURLRequest *requestObj = [NSMutableURLRequest requestWithURL:url];
    [_webTest loadRequest:requestObj];

这就是它在移动 Safari 中的外观(正确)

在此处输入图像描述

最后,它在内部的外观UIWebView(错误地)

在此处输入图像描述

什么可能会改变它在移动 safari 与 safari 之间的渲染方式UIWebView?我认为重点是他们应该看起来一样!

4

1 回答 1

2

这是因为移动 safari 和 webview 具有不同的用户代理值。
查看这篇关于类似问题的 SO 帖子:Change User Agent in UIWebView (iPhone SDK)

来自已接受解决方案的代码:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)req navigationType:(UIWebViewNavigationType)navigationType {
    NSMutableURLRequest *request = (NSMutableURLRequest *)req;

    if ([request respondsToSelector:@selector(setValue:forHTTPHeaderField:)]) {
        [request setValue:[NSString stringWithFormat:@"%@ Safari/528.16", [request valueForHTTPHeaderField:@"User-Agent"]] forHTTPHeaderField:@"User_Agent"];
    }
    return YES; 
}
于 2013-01-14T20:58:13.690 回答