Comment pré-remplir le text du corps SMS via un lien html

Comment utiliser un lien HTML pour ouvrir l'application SMS avec un corps pré-rempli?

Tout ce que j'ai lu semble indiquer que sms: 18005555555? Body = bodyTextHere

Devrait fonctionner, mais sur l'iPhone, cela ne fonctionne pas. Si je sors le? Body = bodyTextHere, et juste utiliser sms: phonenumber, ça marche.

J'ai vu plusieurs cas où les codes QR le font via un lien safari. Comment peuvent-ils pré-remplir le corps du text?

    Il s'avère que c'est 100% possible, même si un peu hacky.

    Si vous voulez que cela fonctionne sur Android, vous devez utiliser ce format:

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

    Si vous voulez que cela fonctionne sur iOS, vous avez besoin de ceci:

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

    Démo en direct ici: http://bradorego.com/test/sms.html (notez le "téléphone et" corps "et" téléphone et; corps "devrait remplir automatiquement à la fois le champ to: et le corps du text. Info)

    METTRE À JOUR:

    Apparemment, iOS8 a dû aller nous changer des choses, donc grâce à certains autres commentateurs / répondeurs, il y a un nouveau style pour iOS:

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

    (le numéro de téléphone est facultatif)

    Pour iOS 8, essayez ceci:

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

    Commutation du ";" avec un "&" a travaillé pour moi.

    Je sais que c'est un vieux fil mais je suis tombé dessus et j'ai trouvé que certaines parties ne sont plus pertinentes.

    J'ai trouvé que si vous voulez simplement remplir le text sans append de numéro de téléphone, vous pouvez faire ce qui suit:

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

    Il suffit de mettre tous les symboles dans cet ordre (je l'ai seulement testé dans cet ordre, car cela me semble le plus logique).

    Avis pour le lien du corps … Je viens de mettre … ;?&body= . Notez également que j'ai trouvé que je devais utiliser %20 pour tous les espaces.

    Je l'ai testé sur mon iPhone (version 9.2) et un autre Android et ça marche très bien.

    Cela permettra de résoudre le problème de devoir le pirater pour différents appareils. Je n'ai aucun artefact quand je l'ai testé dans le 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> 

    Nous avons trouvé une méthode proposée et testé:

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

    Voici les résultats:

    • iPhone4 – faute (corps vide du message);
    • Nokia N8 – ok (corps du message – "Bonjour mon ami", à "12345678");
    • HTC Mozart – fault (message "page non supscope" (après avoir cliqué sur le lien "Envoyer sms"));
    • HTC Desire – fault (message "destinataires non valides":
      <12345678? Body = Hellomyfriend> "(après avoir cliqué sur le lien" Envoyer SMS ")).

    Je conclus donc que ça ne marche pas vraiment – avec cette méthode au less.

    L'iPhone n'accepte aucun text de message, il n'accepte que le numéro de téléphone. Vous pouvez le voir ici https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html#//apple_ref/doc/uid/TP40007899-CH7-SW1

     <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; }) 

    La solution de Bradorego est ce qui a fonctionné pour moi, mais voici une réponse plus étendue.

    Une petite considération est que vous devez encoder le corps en utilisant %20 au lieu de + . Pour PHP, cela signifie utiliser rawurlencode($body) au lieu de urlencode($body) . Sinon, vous verrez des signes plus dans le message sur les anciennes versions d'iOS, au lieu d'espaces.

    Voici une fonction jQuery qui va réorganiser vos liens SMS pour les appareils iOS. Les appareils Android / autres devraient fonctionner normalement et n'exécuteront pas le code.

    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;'); }); })(); 

    Pensez à utiliser une class comme a.sms-link au lieu d' a[href^="sms:"] si possible.

    Je soupçonne que dans la plupart des applications, vous ne saurez pas qui envoyer du text, vous ne voulez donc que remplir le corps du text, pas le numéro. Cela fonctionne comme vous vous en doutez en omettant le numéro – voici à quoi ressemblent les URL dans ce cas:

     sms:?body=message 

    Pour iOS même chose sauf avec le;

     sms:;body=message 

    Voici un exemple du code que j'utilise pour configurer le SMS:

     var ua = navigator.userAgent.toLowerCase(); var url; if (ua.indexOf("iphone") > -1 || ua.indexOf("ipad") > -1) url = "sms:;body=" + encodeURIComponent("I'm at " + mapUrl + " @ " + pos.Address); else url = "sms:?body=" + encodeURIComponent("I'm at " + mapUrl + " @ " + pos.Address); location.href = url; 
     <a href="sms:/* phone number here */&body=/* body text here */">Link</a> 

    Cela fonctionne sur mon iPhone 5S!

    J'ai découvert que, sur iPhone 4 avec IOS 7 , vous ne pouvez mettre un corps au SMS que si vous avez défini un numéro de téléphone dans la list des contacts du téléphone.

    Donc, ce qui suit va fonctionner Si 0606060606 fait partie de mes contacts:

     <a href="sms:0606060606;body=Hello my friend">Send SMS</a> 

    En passant, sur iOS 6 (iPhone 3GS), ça marche avec juste un corps:

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

    Chaque version de operating system a une manière différente de le faire. Jetez un oeil à la bibliothèque sms-link

    L'un des problèmes avec un lien click-to-text est de résoudre le scénario de bureau où aucune application de messagerie native n'existe. Une solution consiste à utiliser le créateur de button Click-to-Text de Zipwhip.

    • Sur le bureau, ils vous envoient un vrai message text réel derrière les scènes de l'input de l'user.
    • Sur iOS ou Android, vous obtenez la fonctionnalité de textos natifs à la place.

    https://www.zipwhip.com/create-sms-button/

    Pour get des sms: et mailto: des liens pour travailler sur iPhone et Android, sans javascript, essayez ceci:

     <a href="sms:321-555-1111?&body=This is what I want to sent">click to text</a> <a href="mailto:[email protected]?&subject=My subject&body=This is what I want to sent">click to email</a> 

    Je l'ai testé sur Chrome pour Android et iPhone, et Safari sur iPhone.
    Ils ont tous travaillé comme prévu. Ils ont travaillé sans le numéro de téléphone ou l'adresse électronique.

    Ni Android ni iPhones ne prennent actuellement en charge l'élément de copy du corps dans un hyperlink Taper pour SMS. Cela peut être fait par programme si,

     MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; picker.messageComposeDelegate = self; picker.recipients = [NSArray arrayWithObject:@"48151623"]; picker.body = @"Body text."; [self presentModalViewController:picker animated:YES]; [picker release];