我有一个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与UIWebView
之间呈现的方式?我认为关键是他们应该看起来一样!
答案 0 :(得分: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;
}