Скопируйте / вставьте номер телефона в клавиатуру или наберите бесплатный номер в iOS программно
Я пытаюсь позвонить из моего приложения, используя
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://1800000002"]];
Это бесплатный номер в Индии. Но во время набора номера он конвертируется в +1(800)-000-000 (преобразование номера и повторение набора номера в номер США).
Я сослался скопировать / вставить номер телефона в клавиатуру. И когда я набираю бесплатный номер в Индии, iPhone соединяет США]. Но не смог найти решение.
Так может кто-нибудь, пожалуйста, помогите мне избежать этого вызова ISD местного вызова Индии.
3 ответа
Телпромпт хочет номер в международном формате. Так что вам нужно преобразовать это в это. Я думаю, что для Индии и номера, который вы пытаетесь назвать, это должно быть +911800000002
,
Так что это должно работать:
NSURL *phoneURL = [NSURL URLWithString:@"telprompt://+911800000002"];
if ([[UIApplication sharedApplication] canOpenURL:phoneURL]) {
[[UIApplication sharedApplication] openURL:phoneURL];
} else {
// handle that case. e.g show number to user so that they can
// type it in a phone manually or copy it to the clipboard and
// notify user about that.
}
В зависимости от того, как местные номера по сравнению с международным форматом работают в Индии, вам может потребоваться удалить 1
на свой номер, не уверен насчет этого.
На заметку: Вы всегда должны использовать международный формат при работе с телефонными номерами. В противном случае устройство, которое в настоящее время находится за пределами страны назначения, может позвонить кому-то другому или просто не сможет выполнить вызов вообще.
Добавлен код графства (для Индии: +91)
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://+911800000002"]];
Общий способ узнать код страны
NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale.
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode]; // get country code, e.g. ES (Spain), FR (France), etc.
Apple может отклонить ваше приложение, если вы используете telprompt. Используйте следующий код для программного набора номера и убедитесь, что вы вводите номер, который хотите вызвать, в правильном формате.
NSString *phoneNumber = @"+1800000002;
NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber];
NSURL *phoneURL = [NSURL URLWithString:phoneURLString];
[[UIApplication sharedApplication] openURL:phoneURL];
источник: замена тел или телпромпт звонить