iOS: ¿Cómo iniciar una llamada a un contacto de la libreta de direcciones con caracteres especiales (# / *) en el número?

Actualmente estoy trabajando en una aplicación de iOS que utiliza transmisión de audio en vivo, y nuestros usuarios han solicitado una function para bloquear automáticamente las llamadas entrantes cuando se transmiten. Sé que no hay API para hacer esto, así que la forma en que lo resolvimos es tener un button en la interfaz de usuario que llame automáticamente a un cierto número (específico para el proveedor de telecomunicaciones) que active o desactive el locking de llamadas entrantes. Lo hace simplemente abriendo un tel: URL.

Todo funciona bien, y aunque no sea muy fácil de usar porque obliga a los usuarios a salir de la aplicación, creo que es la solución más elegante con las herramientas proporcionadas por la API de iOS.

Sin embargo, hay una advertencia: algunos proveedores de telecomunicaciones no tienen un solo número corto que las personas puedan llamar para activar o desactivar esta function. En su lugar, usan códigos largos que tienen caracteres especiales en ellos, como # y *. Lamentablemente, iOS se niega a abrir tel: URL con esos caracteres, presumiblemente por razones de security. Sin embargo, me preguntaba si es posible que los usuarios pongan esos numbers en contactos y luego hacer que iOS llame a esos contactos directamente.

Sé cómo recuperar los numbers de teléfono de la libreta de direcciones directamente, pero eso no sirve porque todavía tendré el problema de que las URL no sean aceptadas. Entonces, ¿hay una forma de, por ejemplo, tener tel: URL con una ID de contacto o algo similar?

Gracias por leer y / o responder. 🙂

No puede marcar # o * desde una aplicación. Es el plan de Apple para protegernos de las personas desagradables.

Para citar la documentation de Apple:

Para evitar que los usuarios networkingireccionen maliciosamente las llamadas telefónicas o cambien el comportamiento de un teléfono o count, la aplicación de teléfono admite la mayoría, pero no todos, de los caracteres especiales en el esquema de teléfono. Específicamente, si una URL contiene los caracteres * o #, la aplicación del teléfono no intenta marcar el número de teléfono correspondiente.

… y convertir a caracteres ASCII y otros trucos tampoco funciona (lo intenté).

    Intereting Posts