Pregunta Cómo rellenar previamente el texto del cuerpo del sms a través de un enlace html


¿Cómo usar un enlace html para abrir la aplicación sms con un cuerpo precargado?

Todo lo que he leído parece indicar que sms: 18005555555? Body = bodyTextHere

Debería funcionar, pero en el iPhone, esto no funciona. Si saco el cuerpo = bodyTextHere, y simplemente uso sms: phonenumber, funciona.

He visto varias instancias en las que los códigos QR hacen esto a través de un enlace de safari. ¿Cómo pueden rellenar previamente el texto del cuerpo?


75
2018-06-25 20:55


origen


Respuestas:


Resulta que esto es 100% posible, aunque un poco hacky.

Si quieres que funcione en Android, necesitas utilizar este formato:

<a href="sms:/* phone number here */?body=/* body text here */">Link</a>

Si quieres que funcione en iOS, necesitas esto:

<a href="sms:/* phone number here */;body=/* body text here */">Link</a>

Demostración en vivo aquí: http://bradorego.com/test/sms.html (tenga en cuenta que "Teléfono y? cuerpo" y "Teléfono y cuerpo" deben rellenar automáticamente el campo para: y el texto del cuerpo. Ver la fuente para obtener más información)

ACTUALIZAR:

Aparentemente, iOS8 tenía que cambiarnos las cosas, así que gracias a algunos de los otros comentaristas / respondedores, hay un nuevo estilo para iOS:

<a href="sms:/* phone number here */&body=/* body text here */">Link</a>

(número de teléfono es opcional)


133
2017-10-01 21:32



Para iOS 8, prueba esto:

<a href="sms:/* phone number here */&body=/* body text here */">Link</a>

Cambiar el ";" con un "y" funcionó para mí.


34
2017-09-26 20:21



Sé que este es un hilo viejo, pero tropecé con él y descubrí que algunas partes ya no son relevantes.

Descubrí que si desea rellenar el texto por completo sin agregar un número de teléfono, puede hacer lo siguiente:

sms:?&body=/* message body here */

30
2018-01-26 12:31



Solo coloque todos los símbolos en este orden (solo lo probé en este orden, ya que tiene sentido para el código).

Aviso para el enlace del cuerpo ... Acabo de poner ... ;?&body=. Además, observe que he encontrado que necesitaba usar %20 para cualquier espacio

Lo he probado en mi iPhone (v. 9.2) y otro android y funciona muy bien.

Esto resolverá el problema al tener que hackearlo para diferentes dispositivos. No tengo artefactos cuando lo probé en el SMS.

<a href="sms:19131234567;?&body=Question%20from%20mywebsite.com.%20%20MY%20MESSAGE%20-%20" title="Click here to TEXT US gallery token needs updating!">Send me SMS</a>

16
2017-08-01 21:03



Encontramos un método propuesto y probado:

<a href="sms:12345678?body=Hello my friend">Send SMS</a>

Aquí están los resultados:

  • iPhone4 - falla (cuerpo de mensaje vacío);
  • Nokia N8 - ok (cuerpo del mensaje - "Hola mi amigo", Para "12345678");
  • HTC Mozart: error (mensaje "página no admitida" (después de hacer clic en el Enlace "Enviar sms");
  • HTC Desire - error (mensaje "Destinatario (s) inválido (s):
    <12345678? Body = Hellomyfriend> "(después de hacer clic en el enlace" Enviar sms ")).

Por lo tanto, concluyo que en realidad no funciona, con este método al menos.


10
2017-10-30 11:44



El iPhone no acepta ningún texto de mensaje, solo aceptará el número de teléfono. Puedes ver esto aquí https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html#//apple_ref/doc/uid/TP40007899-CH7-SW1


4
2018-06-25 21:05



<a href="###" data-telno="13800000000" data-smscontent="hello" class="XXXXX XXXXXX XXXXXX sendsms"/>

$('.sendsms').on('click', function(){
    var p = $(this).data('telno'),
        c = $(this).data('smscontent'),
        t = ';';

    if (!ios) { // add your own iOS check
        t = '?';
    }
    location.href = 'sms:'+ p + t + c;
})

4
2017-12-23 08:26



La solución de Bradorego es lo que funcionó para mí, pero aquí hay una respuesta más amplia.

Una pequeña consideración es que necesitas codificar el cuerpo usando %20 en lugar de +. Para PHP, esto significa usar rawurlencode($body) en lugar de urlencode($body). De lo contrario, verá más signos en el mensaje en las versiones anteriores de iOS, en lugar de espacios.

Aquí hay una función jQuery que reajustará sus enlaces SMS para dispositivos iOS. Android / otros dispositivos deberían funcionar normalmente y no ejecutarán el código.

HTML:

<a href="sms:+15551231234?body=Hello%20World">SMS "Hello World" to 555-123-1234</a>

jQuery:

(function() {
  if ( !navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ) return;

  jQuery('a[href^="sms:"]').attr('href', function() {
    // Convert: sms:+000?body=example
    // To iOS:  sms:+000;body=example (semicolon, not question mark)
    return jQuery(this).attr('href').replace(/sms:(\+?([0-9]*))?\?/, 'sms:$1;');
  });
})();

Considera usar una clase como a.sms-link en lugar de a[href^="sms:"] si es posible.


3
2018-02-12 19:40