Как и многие другие люди до меня, у меня есть веб-контент, который я хочу отобразить в своем приложении.Мой сайт - это сайт на базе ASP.NET, разработанный в Microsoft Visual Web Developer, и он использует Ajax Toolkit среди других отличных дополнений.Я могу открыть сайт в мобильном браузере Safari на моем iPhone, и я даже собрал несколько страниц, удобных для мобильных устройств.
Я (или, точнее, мой босс) хочу приложение для iPhone, в котором хранятся учетные данные, используемые длядоступ к моему сайту и отправляет их автоматически при открытии приложения.Вот проблема:
Мой сайт не загружается в UIWebView.Он также не работает ни с одним из методов делегата (завершить загрузку, не удалось загрузить и т. Д.).Он просто запускает запрос на подключение и сидит там.Сайт работает в Safari на том же устройстве, которое я использую для тестирования, поэтому я полагаю, что проблема связана с тем, что в UIWebKit нет встроенных инструментов, которые делает Safari.
Что (в частности) вызываетмой сайт не загружаться в UIWebKit, когда он загружается правильно в Safari?
Я опубликую методы, которые я настроил, чтобы поймать любые признаки жизни из моего звонка на
[myWebView loadRequest:myRequest];
Ни один из следующих методов не вызывается, когда я запускаю свое приложение и достигаю вызова loadRequest, указанного выше.
- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
NSLog(@"WillSendForAuthenticationChallenge");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"Webview failed to load.");
if (error.code == NSURLErrorCancelled) return; // this is Error -999, called when the user forcibly ends the connection by starting a new connection.
UIAlertView *failure = [[UIAlertView alloc] initWithTitle:@"Failed" message:error.localizedDescription delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[failure show];
[spinner stopAnimating];
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"Loading request: %@",request.URL);
return YES;
}
- (void)webViewDidFinishLoad:(UIWebView *)webview
{
NSLog(@"Webview finished loading.");
[spinner stopAnimating];
}
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace {
NSLog(@"Can Authenticate: %@",[protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]);
return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
}
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
NSLog(@"Received an authentication challenge.");
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}