UIWebView показывает ошибку при загрузке веб-страницы, Safari показывает отлично - PullRequest
0 голосов
/ 22 марта 2011

Проблема заключается в том, что веб-сайт не загружается полностью в UIWebView, но он нормально загружается в Safari.

Это ошибка, возникающая при загрузке веб-сайта в UIWebView:

Предупреждение: cos_before_render (/ home / user / 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 ='.: / home / user / ctown / cti_bin / phplot: / usr / local / lib /php ') в /home/user/ctown/cti_bin/wbn/cos_init.inc в строке 731

Неустранимая ошибка: вызов неопределенной функции: json_encode () в / 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ошибка, но сафари не

Ответы [ 3 ]

3 голосов
/ 23 марта 2011

Ошибка не в вашем коде!UIWebView, особенно в симуляторе, использует пользовательский агент примерно так:

Mozilla / 5.0 (iPhone Simulator; U; CPU iPhone OS 4_2, как Mac OS X; en-us) 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];

С помощью этогоЯ смог открыть вашу страницу.Похоже, что сайт возвращает другую разметку для iphone, поэтому в результате с кодом выше будет показан веб-сайт, который немного велик для небольшого дисплея.

0 голосов
/ 23 марта 2011

UIWebView и Safari не имеют одинакового пользовательского агента.

0 голосов
/ 23 марта 2011

Этот ответ не решит вашу проблему (см. Ответ Ника), но вы должны поставить [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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...