0

我的 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 是有效的,如果你只输入 url,它总是会返回一个结果。当前代码显示一个空白的 UIWebView,但如果我将该 url 配置为仅显示“Hi”,它将显示。

4

1 回答 1

0

您遇到编码错误。您指定,您的源将是 UTF-8 编码的,但事实并非如此。

选项1

让 UIWebView 自己处理请求有什么问题?这会更容易,您不必乱用编码。

NSString *urlstring = @"http://some.url.com";
NSURL *url = [NSURL URLWithString:urlstring];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webview loadRequest:request];

选项 2

尝试使用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 轻松找到。

此外,当遇到此类问题时,请尝试调试您的应用程序。问题是字符串为零,而不是 WebView 出现故障。

于 2013-08-20T22:15:53.293 回答