Как набрать номер телефона с "##"?
Я хочу набрать номер телефона, такой как "## 8004664411" в IPhone.
Если я наберу номер "8004664411", он будет работать. Но если номер содержит символ "##", он не будет работать.
Вот код, который я использую, который не работает:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://##8004664411"]];
Экранирующий персонаж не прав?
1 ответ
Боюсь, что вы просто не можете набрать номер, содержащий символы * или #. Похоже, что Apple не допускает их в строке набора по соображениям безопасности. Ниже приведена соответствующая часть документации.
Из документации Apple:
Чтобы пользователи не могли злонамеренно перенаправлять телефонные звонки или изменять поведение телефона или учетной записи, приложение "Телефон" поддерживает большинство, но не все, специальные символы в схеме телефона. В частности, если URL-адрес содержит символы * или #, приложение "Телефон" не пытается набрать соответствующий номер телефона. Если ваше приложение получает строки URL от пользователя или неизвестного источника, вы также должны убедиться, что любые специальные символы, которые могут не подходить для URL, экранированы правильно. Для нативных приложений используйте stringByAddingPercentEscapesUsingEncoding: метод NSString для экранирования символов, который возвращает правильно экранированную версию вашей исходной строки.
Примечание: stringByAddingPercentEscapesUsingEncoding:
часть не относится к * и # (я пробовал да...)