2011-03-22 3 views
0

웹 사이트가 UIWebView에서 완전히로드되지 않지만 Safari에서 정상적으로로드되는 것이 문제입니다. 그러나 나는이 웹 사이트의 백엔드를 수정할 수 없습니다,웹 페이지가로드 될 때 UIWebView가 오류를 표시합니다. Safari가 완벽하게 표시합니다.

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에서 웹 사이트를로드 할 때 내가 오류입니다!

UIWebView Xhmtl parse error but safari don't

답변

0

UIWebView와 Safari에는 동일한 사용자 에이전트가 없습니다.

+0

괜찮 았어,하지만 사용자 에이전트가 정확히 무엇을 의미합니까? 나는 항상 그것을 본다! –

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

조나단에게 조언 해 주셔서 감사합니다! –

3

코드에 오류가 없습니다! UIWebView는 특히 시뮬레이터 내에서 다음과 같은 사용자 에이전트를 사용합니다.

Mozilla/5.0 (iPhone 시뮬레이터, U, Mac OS X과 같은 CPU iPhone OS 4_2) AppleWebKit/533.17.9 (KHTML, Gecko와 같은) Mobile/8C134

제공된 URL을 호출하면 표시되는 오류가 발생합니다. 그것은 서버 측 오류입니다. 이 한 번만 설정되어 있으므로

당신은이 코드를 사용하여 사용자 에이전트를 변경할 수 있습니다 앱의 시작 단계에서 어딘가에 넣어 :

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

을 나는 당신의 페이지를 열 수 있었다 이것으로. 사이트에서 아이폰에 대해 다른 마크 업을 반환하는 것처럼 보이므로 위 코드의 결과는 웹 사이트를 표시 할 것입니다. 웹 사이트는 작은 디스플레이의 경우 약간 큽니다.

+0

hi nick, 이것을 view controller 나 app ​​delegate의 .h .m 파일에 넣으시겠습니까? –

+0

앱 위임자에이를 넣을 수 있습니다. 한 번만 설정해야합니다. –

+0

방금 ​​내 경험을 추가하고 싶습니다. UIWebView가 3 또는 4 리디렉션을 거친 후 많은 사이트 (예 : Groupon)에서 오류 -999가 발생했습니다. 예에서와 같이 유효하지 않은 것으로 사용자 에이전트를 변경하면 Groupon의 NON-mobile 버전이 올바르게로드됩니다. 나는 모바일이 아닌 버전을 원했지만 적어도로드했다. 나는 여전히 문제에 대한 진정한 해결책을 찾고있다. – JavaCoderEx

관련 문제