¿Alguien sabe si es posible y cómo, mediante programación, enviar un SMS desde iPhone
, con el SDK / Cocoa Touch oficial?
ios
objective-c
cocoa-touch
sms
Nitin Gohel
fuente
fuente
tools->script editor
y en una solicitud POST usarMailApp.sendEmail
api para enviar correos electrónicos a un número de teléfono. att's es [email protected], tmobile's es [email protected] Creo (TODO GRATIS)Respuestas:
Restricciones
Si pudieras enviar un SMS dentro de un programa en el iPhone, podrás escribir juegos que envíen spam a las personas en segundo plano. Estoy seguro de que realmente quieres recibir spam de tus amigos: "¡Prueba este nuevo juego! Roxxers mis boxxers, ¡y el tuyo también! Roxxersboxxers.com !!!! Si te registras ahora obtendrás 3.200 RB ¡¡puntos!!"
Apple tiene restricciones para las operaciones automáticas (o incluso parcialmente automatizadas) de SMS y marcado. (Imagínese si el juego marcó 911 en un momento determinado del día)
Su mejor opción es configurar un servidor intermedio en Internet que utilice un servicio de envío de SMS en línea y enviar el SMS a través de esa ruta si necesita una automatización completa. (es decir, su programa en el iPhone envía un paquete UDP a su servidor, que envía el SMS real)
Actualización de iOS 4
iOS 4, sin embargo, ahora proporciona una
viewController
que puede importar a su aplicación. Usted rellena previamente los campos de SMS, luego el usuario puede iniciar el envío de SMS dentro del controlador. A diferencia con el "SMS: ..." formato de URL, lo que permite su aplicación a permanecer abierto, y permite rellenar tanto la a y la carrocería campos. Incluso puede especificar múltiples destinatarios.Esto evita que las aplicaciones envíen SMS automáticos sin que el usuario lo sepa explícitamente. Aún no puede enviar SMS totalmente automatizados desde el iPhone mismo, requiere cierta interacción del usuario. Pero esto al menos le permite llenar todo y evita cerrar la aplicación.
La clase MFMessageComposeViewController está bien documentada y los tutoriales muestran lo fácil que es implementarla.
Actualización de iOS 5
iOS 5 incluye mensajes para dispositivos iPod touch y iPad, por lo que aunque todavía no lo he probado, es posible que todos los dispositivos iOS puedan enviar SMS a través de MFMessageComposeViewController. Si este es el caso, Apple está ejecutando un servidor de SMS que envía mensajes en nombre de los dispositivos que no tienen un módem celular.
Actualización de iOS 6
No hay cambios en esta clase.
Actualización de iOS 7
Ahora puede verificar si el medio de mensaje que está utilizando aceptará un asunto o archivos adjuntos, y qué tipo de archivos adjuntos aceptará. Puede editar el asunto y agregar archivos adjuntos al mensaje, donde el medio lo permita.
Actualización de iOS 8
No hay cambios en esta clase.
Actualización de iOS 9
No hay cambios en esta clase.
Actualización de iOS 10
No hay cambios en esta clase.
Actualización de iOS 11
No hay cambios significativos en esta clase.
Limitaciones a esta clase.
Tenga en cuenta que esto no funcionará en teléfonos sin iOS 4, y no funcionará en el iPod touch o iPad, excepto, tal vez, en iOS 5. Debe detectar el dispositivo y las limitaciones de iOS antes de usar esto controlador, o corre el riesgo de restringir su aplicación a 3G, 3GS y 4 iPhones recientemente actualizados.
Sin embargo, un servidor intermedio que envía SMS permitirá que todos y cada uno de estos dispositivos iOS envíen SMS siempre que tengan acceso a Internet, por lo que aún puede ser una mejor solución para muchas aplicaciones. Alternativamente, use ambos, y solo recurra a un servicio de SMS en línea cuando el dispositivo no lo admita.
fuente
Aquí hay un tutorial que hace exactamente lo que está buscando: el
MFMessageComposeViewController
.http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
Esencialmente:
Y un enlace a los documentos.
https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller
fuente
MFMessageComposeViewController *controller = ...
bloque if dentro. (el método de clase no necesita tener una instancia para hacer la prueba)http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/
dice "502 Bad Gateway" en mi computadora portátil. Tal vez el enlace está roto.#import <MessageUI/MessageUI.h>
en su archivo de encabezadoMFMessageComposeViewControllerDelegate
yUINavigationControllerDelegate
IBAction
método, declare la instancia deMFMessageComposeViewController
saymessageInstance
[MFMessageComposeViewController canSendText]
en una condición if, devolverá Sí / NoEn la
if
condición de hacer esto:Primero establezca el cuerpo para su
messageInstance
como:Luego, decida los destinatarios del mensaje como:
Establezca un delegado a su mensajeInstance como:
En la última línea haz esto:
fuente
presentModalViewController:animated:
está en desuso; utilizarpresentViewController:animated:completion:
en su lugar. Además, recuerde definir el método delegado- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
si desea conocer los resultados.Puede usar una
sms:[target phone number]
URL para abrir la aplicación de SMS, pero no hay indicaciones sobre cómo rellenar un cuerpo de SMS con texto.fuente
Uno de los sistemas de comunicación entre procesos en MacOS es XPC. Esta capa del sistema se ha desarrollado para la comunicación entre procesos basada en la transferencia de estructuras plist mediante libSystem y launchd. De hecho, es una interfaz que permite gestionar procesos mediante el intercambio de estructuras tales como diccionarios. Debido a la herencia, iOS 5 también posee este mecanismo.
Es posible que ya entiendas lo que quiero decir con esta introducción. Sí, hay servicios de sistema en iOS que incluyen herramientas para la comunicación XPC. Y quiero ejemplificar el trabajo con un demonio para el envío de SMS. Sin embargo, debe mencionarse que esta capacidad se repara en iOS 6, pero es relevante para iOS 5.0—5.1.1. Jailbreak, Private Framework y otras herramientas ilegales no son necesarias para su explotación. Solo se necesita el conjunto de archivos de encabezado del directorio / usr / include / xpc / *.
Uno de los elementos para el envío de SMS en iOS es el servicio del sistema com.apple.chatkit, cuyas tareas incluyen la generación, gestión y envío de mensajes de texto cortos. Para facilitar el control, tiene el puerto de comunicación disponible públicamente com.apple.chatkit.clientcomposeserver.xpc. Usando el subsistema XPC, puede generar y enviar mensajes sin la aprobación del usuario.
Bueno, intentemos crear una conexión.
Ahora tenemos la conexión XPC myConnection configurada para el servicio de envío de SMS. Sin embargo, la configuración de XPC proporciona la creación de conexiones suspendidas; debemos dar un paso más para la activación.
La conexión está activada. Justo en este momento, iOS 6 mostrará un mensaje en el registro telefónico de que este tipo de comunicación está prohibida. Ahora necesitamos generar un diccionario similar a xpc_dictionary con los datos requeridos para el envío del mensaje.
Queda poco: envíe el mensaje al puerto XPC y asegúrese de que se entregue.
Eso es todo. SMS enviados
fuente
Agregue el MessageUI.Framework y use el siguiente código
Y entonces:
y el método delegado
fuente
Puedes usar este enfoque:
iOS navegará automáticamente desde su aplicación a la página de redacción de mensajes de la aplicación de mensajes. Dado que el esquema de la URL comienza con sms :, esto se identifica como un tipo que la aplicación de mensajes reconoce y lo inicia.
fuente
fuente
Sigue estos procedimientos
1. Añadir
MessageUI.Framework
al proyecto2) Importar
#import <MessageUI/MessageUI.h>
en archivo .h.3) Copia este código para enviar el mensaje
4) Implemente el
delegate
método si lo desea.Corre y vete!
fuente
[self dismissViewControllerAnimated:YES completion:nil];
en el interiormessageComposeViewController: didFinishWithResult:
método de devolución de llamada. De lo contrario, simplemente colgará allí.Aquí está la versión de código Swift para enviar SMS en iOS. Tenga en cuenta que solo funciona en dispositivos reales. Código probado en iOS 7+. Puedes leer más aquí .
1) Cree una nueva clase que herede MFMessageComposeViewControllerDelegate y NSObject:
2) Cómo usar esta clase:
fuente
Hay una clase en iOS 4 que admite el envío de mensajes con cuerpo y recetas desde su aplicación. Funciona igual que enviar correo. Puede encontrar la documentación aquí: texto del enlace
fuente
fuente
// llama al método con nombre y número.
}
// Método para enviar el mensaje
fuente
Si lo desea, puede usar el marco privado
CoreTelephony
que se llamaCTMessageCenter
clase. Existen algunos métodos para enviar sms.fuente
Utilizar este:
fuente
Esta sería la mejor y corta forma de hacerlo.
fuente
Puede presentar MFMessageComposeViewController, que puede enviar SMS, pero con el aviso del usuario (toca el botón Enviar). No hay forma de hacerlo sin el permiso del usuario. En iOS 11, puede hacer una extensión, que puede ser como un filtro para los mensajes entrantes, diciéndole a iOS si es spam o no. No se puede hacer nada más con SMS
fuente
Debe usar MFMessageComposeViewController si desea mostrar la creación y el envío del mensaje en su propia aplicación.
De lo contrario, puede usar el método sharedApplication .
fuente