问题是网站没有在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];
}
我尝试了下面链接的问题,但是我无法修改网站的后端!
答案 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没有相同的用户代理。