Симулятор iPhone не отображает ошибку в 3.0, но отображает в 2.0 - PullRequest
2 голосов
/ 08 августа 2009

Я работаю над учебником, который имеет следующую строку кода:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8004664411"]];

Когда программа компилируется в 3.0 Framework и запускается эта строка кода, ничего не происходит. Однако, если программа построена с использованием 2.0 Framework, эта строка кода вызывает всплывающее окно с текстом:

"Неподдерживаемый URL Этот URL не был загружен: тел: 8004664411" //

Может кто-нибудь объяснить, почему в 3.0 не возникает ошибка?

Ответы [ 2 ]

3 голосов
/ 08 августа 2009

Я не знаю, почему вы видите ошибки только в сборках фреймворка 2.0. При использовании Xcode Simulator телефонные ссылки всегда просто игнорируются.

В любом случае, перед тем, как пытаться позвонить по номеру телефона с помощью метода класса canOpenURL, рекомендуется дать приложению проверить, поддерживается ли схема tel url;


NSString *zeURL = @"tel://8004664411";

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:zeURL]]) {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:zeURL]];
} else { 
    //show own error message dialog
}
2 голосов
/ 08 августа 2009

И, судя по недавнему опыту, ваше приложение будет отклонено в процессе одобрения App Store, если вы не будете правильно обращаться с оборудованием, которое не поддерживает tel://.

У меня была кнопка, которую я положил туда, iPod и симулятор не ломаются, но они ничего не делают. Вы должны обнаружить и удалить кнопку, если она работает на устройстве, которое ее не поддерживает.

Я хотел пнуть себя за то, что позволил этому обойтись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...