我的UIWebView正在显示一些奇怪的行为。当我加载完整的HTML页面时,它只显示一个空白页面。但是,如果我只是加载“嗨”之类的东西,它会显示正常。我的代码如下加载它:
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString: [NSString stringWithFormat:@"http://site.com/external/get.php?type=phone&url=%@", url]] encoding:NSUTF8StringEncoding error:nil];
[webView loadHTMLString:html baseURL:nil];
假设html是有效的,如果您只输入网址,它将始终返回结果。当前代码显示一个空白的UIWebView,但如果我要将该URL配置为仅显示“Hi”,则会显示。
答案 0 :(得分:0)
您遇到编码错误。您指定,您的源将是UTF-8编码,而不是。
让UIWebView自己处理请求有什么问题?这将更容易,你不必乱用编码。
NSString *urlstring = @"http://some.url.com";
NSURL *url = [NSURL URLWithString:urlstring];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webview loadRequest:request];
尝试使用NSASCIIStringEncoding
代替NSUTF8StringEncoding
。已经为我做了快速测试。其他NSStringEncoding枚举可在此处找到:http://api.monobjc.net/html/T_Monobjc_Foundation_NSStringEncoding.htm
不要忽略错误。
NSError *error;
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString: [NSString stringWithFormat:@"http://site.com/external/get.php?type=phone&url=%@", url]] encoding:NSUTF8StringEncoding error:&error];
if (error)
NSLog(@"Error: %@", [error localizedDescription]);
在您的情况下,这很可能会打印出Cocoa error 261
到控制台。这意味着您的编码错误,可以通过google和/或stackoverflow轻松找到。
此外,在出现此类问题时,请尝试调试您的应用程序。问题是String为nil,而不是WebView出现故障。