Приложение "Soccer Links & Database" в App Store
Автор: Vitkovsky 09.07.2009 10:16
Приложение, о котором я ранее тут писал или можно еще тут от заказчика, теперь можно скачать в App Store
<$0.99, iTunes link> | Ура, пропустили со второго раза:-) |
Пришло письмо от Apple примерного содержания:
When the device is not connected to a network, Soccer Links & Database 1.0 does not load its contents and stays blank. This behavior might lead to user confusion. It would be appropriate to display either a notification or an alert stating that internet connectivity is required.
Гугл перевел:
Когда устройство не подключено к сети, приложение "Soccer Links & Database" не загружает его содержимое и остается пустым. Такое поведение может привести к путанице пользователей. Было бы целесообразно показывать либо уведомлений или предупреждений о том, что подключение к Интернету не требуется.
Хотя я видел приложения в App Store с такими же “ошибками”, ну да ладно, переделал и отправил. Надпись взял из safari, только название приложения сменил. Вставил в двух местах: при открытии страницы и при обновлении данных.

Код для UIWebView как на первой картинке показано:
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
// report the error inside the webview
NSString* errorString = [NSString stringWithFormat:
@"%@",
error.localizedDescription];
//NSLog(errorString);
if ([errorString isEqualToString:@"no Internet connection"]) {
UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Cannot Open Page" message:MessNoNet delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlert show];
[errorAlert release];
}}
Код для "NSXMLParser" как на второй картинке показано при обновлении данных с сервера:
NSURL *xmlURL1 = [NSURL URLWithString:URL];
NSError *errorData = [[[NSError alloc] init] autorelease];
dataURL = [NSData dataWithContentsOfURL:xmlURL1 options:1 error:&errorData];
NSLog([NSString stringWithFormat:@"Код ош%d",errorData.code]);
if (errorData.code==256) {
connect = NO;
UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Cannot Open Page" message:MessNoNet delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlert show];
[errorAlert release];
}else {
connect = YES;
Parser = [[NSXMLParser alloc] initWithData:dataURL];
// Set self as the delegate of the parser so that it will receive the parser delegate methods callbacks.
[Parser setDelegate:self];
// Depending on the XML document you're parsing, you may want to enable these features of NSXMLParser.
[Parser setShouldProcessNamespaces:NO];
[Parser setShouldReportNamespacePrefixes:NO];
[Parser setShouldResolveExternalEntities:NO];
[Parser parse];
}
Можно было и в первом случае сделать через "errorData.code", но уже не буду переделывать. Я бы и во втором случае сделал через "[errorString isEqualToString:@"no Internet connection"]", но в случае с "NSXMLParser" не возникает такой ошибки, пришлось копать глубже. Я определил что, если "errorData.code==256", то значит нет Интернета.
В общем, я очень рад, что моя первая программа в AppAtore:-) Надо же где-то опыта набираться.
Сейчас пишу следующую программу. На аналогичную тему, только теперь будет “Спортивный календарь”. Основываясь на предыдущем опыте, пишу совсем по-другому. Программа немного проще первой, без всяких “табов”, одна страница со строками по разделам. Будет готова - выложу полное описание со скринами.
P.S.
С такими темпами я скоро стану заядлым футбольным болельщиком:-) Что-то все на одну тему прет.





Комментарии
RSS лента комментариев этой записи.