Я думаю, что вам просто нужно .open () не .openURL

аюсь инициировать вызов на iPhone сtel URL, в котором есть *. Он правильно вызывает диалог вызова, но при нажатии кнопки вызова возвращается к сафари.

<a href="tel:123*12">Test</a>

Ответы на вопрос(3)

iOS11 теперь позволяет нам звонить на номер с* или же#

Swift Пример кода
        let app = UIApplication.shared
    if let encoded = number.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) {
        let u = "tel://\(encoded)"
        if let url = URL(string:u) {
            if app.canOpenURL(url) {
                app.open(url, options: [:], completionHandler: { (finished) in

                })
                return
            }
        }
    }
 Husam25 дек. 2017 г., 23:24
@leanne, я добавил пример кода, надеюсь, это поможет
 leanne25 дек. 2017 г., 23:18
Как? Используя iOS11, Xcode 9.2, Swift 4.0.3, я не могу набрать номер с помощью # и *.
 leanne25 дек. 2017 г., 23:35
Спасибо, Хусам! Я кодировал всю строку (тел: // * 111 * 12345 #). Ключ должен былтолько закодироватьномер, неtel:// префикс.

по крайней мере, больше. Я проверил оба какстраница интернета и в приложении можно набирать с помощью специального символа# а также*, Что вам нужно сделать, если вы хотите использовать эти символы в любом случае, хотя бы для их кодирования.

В HTML# становится%23 а также* не нужно убегать

При использовании Swift вы можете закодировать свою ссылку и нажать ее из приложения, используя эту функцию:

//number format example (commas are pauses): 123-456-7890,,555#,1234
fileprivate func callNumber(_ number: String) {
    let dialString = "telprompt://" + number
    if let escapedDialString = dialString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) {
      if let dialURL = URL(string: escapedDialString) {
        UIApplication.shared.openURL(dialURL)
      }
    }
  }
 leanne25 дек. 2017 г., 23:54
Видеть@ Ответ Хусама, Пример кода Husam действительно работает на iOS 11. Хитрость заключается в кодированиитолько часть числа, а неtel:// часть. (Тоже не тоtelprompt:// больше не требуется для получения запроса подтверждения вызова.tel:// теперь сделаю то же самое.)
 Or Ron03 апр. 2017 г., 10:44
* не работал для меня
 Akshada-Systematix07 июн. 2017 г., 14:53
мы можем открыть панель набора номера из моего приложения. строка типа * 123456 #. Я пытался с ответами выше, но это не работает. Пожалуйста, помогите мне очень срочно.
 Jason27 апр. 2018 г., 00:49
Я думаю, что вам просто нужно .open () не .openURL
 Emad28 февр. 2017 г., 14:25
Это похоже на работу! Фантастика. Я не могу поверить своим глазам ~
Решение Вопроса

Эта документация от Apple должно быть полезно:

Чтобы пользователи не могли злонамеренно перенаправлять телефонные звонки или изменять поведение телефона или учетной записи, приложение «Телефон» поддерживает большинство, но не все, специальные символы в схеме тел. В частности, если URL-адрес содержит символы * или #, приложение «Телефон» не пытается набрать соответствующий номер телефона.

ОБНОВЛЕНИЕ (2 января 2018 г.): Информация, упомянутая здесь, может быть устаревшей. Пожалуйста, обратитесь к новой документации, если Apple ослабила эти правила в своих новых SDK. Обратитесь к ответу Хусама.

 Husam25 дек. 2017 г., 23:25
iOS 11 позволяет звонить* или же#прочитайте мой ответ здесьstackoverflow.com/a/47062700/1599713

Ваш ответ на вопрос