加载网页时,UIWebView显示错误,Safari显示完美

时间:2011-03-22 16:14:49

标签: iphone objective-c ios ios4 uiwebview

问题是网站没有在UIWebView中完全加载,但它在Safari中正常加载。

这是我在UIWebView中加载网站时遇到的错误:

  

警告:   cos_before_render(/家/用户/ ctown / doc_wbn //../ SYS / SWT / www.westspringsec.moe.edu.sg.mob)   [function.cos-before-render]:失败   打开流:没有这样的文件或   目录   /home/user/ctown/cti_bin/wbn/cos_init.inc   在731号线上

     

警告:cos_before_render()   [function.include]:打开失败   '/home/user/ctown/doc_wbn//../sys/swt/www.westspringsec.moe.edu.sg.mob'   包括在内   (include_path中= ':/家庭/用户/ ctown / cti_bin / PHPLOT:在/ usr /本地/ LIB / PHP')   在   /home/user/ctown/cti_bin/wbn/cos_init.inc   在731号线上

     

致命错误:调用未定义   function:json_encode()in   /home/user/ctown/cti_bin/wbn/cos_init.inc   在第737行

- (void)viewDidLoad {
    NSString *urlAddress = @"http://www.westspringsec.moe.edu.sg";
    NSURL *url = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [Webview loadRequest:requestObj];
    [super viewDidLoad];
}

我尝试了下面链接的问题,但是我无法修改网站的后端!

UIWebView Xhmtl parse error but safari don't

3 个答案:

答案 0 :(得分:3)

错误不在你的代码中! UIWebView,特别是在模拟器中使用的用户代理如下:

Mozilla / 5.0(iPhone模拟器; U; CPU iPhone OS 4_2,如Mac OS X; en-us)AppleWebKit / 533.17.9(KHTML,如Gecko)Mobile / 8C134

当您调用提供的网址时,会导致您看到的错误。这是服务器端错误。

您可以使用此代码更改您的用户代理,将其置于应用启动阶段的某个位置,以便只设置一次:

NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@"Safari/528.16", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];
[dictionnary release];

有了这个我就能打开你的页面了。看起来网站为iphone返回了不同的标记,因此上面代码的结果将显示网站,这对于小显示来说有点大。

答案 1 :(得分:0)

这个答案不会解决您的问题(请参阅Nick的答案),但您应该在执行任何其他操作之前添加[super viewDidLoad];。所以:

- (void)viewDidLoad {
    [super viewDidLoad];
    NSString *urlAddress = @"http://www.westspringsec.moe.edu.sg";
    NSURL *url = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [Webview loadRequest:requestObj];
}

答案 2 :(得分:0)

UIWebView和Safari没有相同的用户代理。