2011-03-22 273 views
0

問題是網站沒有完全加載UIWebView,但它在Safari中正常加載。UIWebView在加載網頁時顯示錯誤,Safari完美顯示

這是裝載在一個UIWebView的網站時,我得到的錯誤:我嘗試以下鏈接的問題

Warning: cos_before_render(/home/user/ctown/doc_wbn//../sys/swt/www.westspringsec.moe.edu.sg.mob) [function.cos-before-render]: failed to open stream: No such file or directory in /home/user/ctown/cti_bin/wbn/cos_init.inc on line 731

Warning: cos_before_render() [function.include]: Failed opening '/home/user/ctown/doc_wbn//../sys/swt/www.westspringsec.moe.edu.sg.mob' for inclusion (include_path='.:/home/user/ctown/cti_bin/phplot:/usr/local/lib/php') in /home/user/ctown/cti_bin/wbn/cos_init.inc on line 731

Fatal error: Call to undefined function: json_encode() in /home/user/ctown/cti_bin/wbn/cos_init.inc on line 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

回答

0

UIWebView和Safari沒有相同的用戶代理。

+0

好的謝謝,但用戶代理準確地意味着什麼?我總是看到它! – 2011-04-13 04:38:41

0

這個答案不會解決你的問題(見尼克的回答是),但你應該把你[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]; 
} 
+0

感謝喬納森的建議! – 2011-03-30 12:59:26

3

該錯誤不在您的代碼內! UIWebView,特別是在模擬器中使用的用戶代理是這樣的:

Mozilla/5.0(iPhone模擬器; U; CPU iPhone OS 4_2,如Mac OS X; en-us)AppleWebKit/533.17.9(KHTML,像壁虎)手機/ 8C134

當您調用提供的網址時,它會導致您看到的錯誤。這是服務器端錯誤。

您可以更改使用此代碼的用戶代理,把它放在某個地方你的應用程序的啓動階段,所以它只能設置一次:

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

有了這個,我能打開網頁。它看起來像該網站返回iPhone的不同標記,所以與上面的代碼結果將顯示網站,這是一個小顯示器有點大。

+0

嗨尼克,我把這個視圖控制器或我的應用程序委託的.h .m文件? – 2011-04-13 04:45:33

+0

你可以把它放在你的應用程序委託中。它只能設置一次。 – 2011-04-13 07:14:47

+0

我只是想在這裏添加我的經驗。在UIWebView經歷了3次或4次重定向之後,我在許多網站(例如Groupon)上收到了一個錯誤-999。如示例中所示,將用戶代理更改爲無效,導致Groupon的非移動版本正確加載。我真的不想要非移動版本,但至少它已加載。我仍然在尋找解決問題的方法。 – JavaCoderEx 2011-07-19 18:56:07