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 necesita codificar el cuerpo usando en %20
lugar de +
. Para PHP, esto significa usar en rawurlencode($body)
lugar deurlencode($body)
. De lo contrario, verá signos más en el mensaje en 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;');
});
})();
Considere usar una clase como en a.sms-link
lugar de a[href^="sms:"]
si es posible.