【问题标题】:UIWebView hiding when loading a full html page in, but NOT when omitting certain tags?UIWebView 在加载完整的 html 页面时隐藏,但在省略某些标签时不隐藏?
【发布时间】:2013-08-20 20:05:15
【问题描述】:

我的 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”,它将显示。

【问题讨论】:

    标签: objective-c uiwebview


    【解决方案1】:

    您遇到了编码错误。您指定,您的源代码将采用 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 出现故障。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多