153 votes

Comment pré-remplir le corps du texte d'un 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

Cela devrait fonctionner, mais sur l'iPhone, cela ne fonctionne pas. Si j'enlève le ?body=bodyTextHere, et que j'utilise simplement sms:phonenumber, ça marche.

J'ai vu plusieurs cas où les codes QR font cela via un lien Safari. Comment parviennent-ils à pré-remplir le corps du texte ?

0 votes

Je me demande si ces scanners QR n'ouvrent pas directement l'application SMS à la place...

0 votes

Je ne pense pas que ce soit possible. Regardez ça : stackoverflow.com/questions/10848/ stackoverflow.com/questions/1517169/

0 votes

C'est toujours vrai ? Pas de méthode ?

220voto

bradorego Points 476

Il s'avère que c'est tout à fait possible, bien que ce soit un peu compliqué.

Si vous voulez qu'il fonctionne sur Android, vous devez utiliser ce format :

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

Si vous voulez qu'il fonctionne sur iOS, vous avez besoin de ceci :

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

Démonstration en direct ici : http://bradorego.com/test/sms.html (Notez que les champs "Phone and ?body" et "Phone and ;body" doivent remplir automatiquement le champ "to :" et le texte du corps. Voir la source pour plus d'informations)

UPDATE :

Apparemment, iOS8 a dû changer les choses pour nous, donc grâce à certains des autres commentateurs/répondants, 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)

0 votes

Sur iOS, il semble que le format soit : <a href="sms : [numéro de téléphone];body=texte du corps">Lien</a>. Remarquez l'absence de crochets sur le corps.

0 votes

Ah, oups. Les crochets ne font pas partie du format - c'est là que vous devriez mettre ces valeurs. Je les ai changés en commentaires et j'espère que c'est un peu plus clair.

0 votes

Cela a fonctionné comme un charme. Merci beaucoup pour la démonstration en direct.+100

74voto

Ali Points 727

Je sais qu'il s'agit d'un vieux fil de discussion, mais je suis tombé dessus par hasard et j'ai constaté que certaines parties ne sont plus pertinentes.

J'ai découvert que si vous souhaitez simplement remplir le texte sans ajouter de numéro de téléphone, vous pouvez procéder comme suit :

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

2 votes

C'est la réponse que je cherchais. Merci pour votre aide !

1 votes

Fonctionne très bien, mais lorsqu'on le fait à partir d'OSX, un message texte s'ouvre à l'écran : ? Vous savez comment le faire apparaître en blanc ? J'ai essayé sms:?body y sms:;?body le premier essaie d'envoyer à ? et le second essaie d'envoyer à ;

0 votes

@JoshuaOhana Que se passe-t-il si vous essayez "sms:?0123456789&body=My Message" ? Désolé, je n'ai pas accès à un appareil Apple sous la main.

41voto

landen Points 1

Pour iOS 8, essayez ceci :

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

Remplacer le " ;" par un "&" a fonctionné pour moi.

3 votes

Je viens de le tester sous iOS 10 et cela fonctionne toujours :).

0 votes

@landen Cela fonctionne parfaitement bien si l'application SMS était déjà ouverte en arrière-plan. Si ce n'est pas le cas, je n'obtiens que l'ouverture de l'application sur mon téléphone, sans numéro de téléphone ni corps du message. Avez-vous une idée ?

40voto

Nathan Sharfi Points 341

Il suffit de placer tous les symboles dans cet ordre (je l'ai testé dans cet ordre car c'est celui qui me semble le plus logique du point de vue du code).

Avis pour le lien de corps... Je viens de mettre... ;?&body= . Notez également que j'ai constaté que j'avais besoin d'utiliser %20 pour tous les espaces.

Je l'ai testé sur mon iphone (v. 9.2) et un autre Android et il fonctionne parfaitement.

Cela résoudra le problème de devoir le pirater pour différents appareils. Je n'ai pas d'artefacts lorsque 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>

1 votes

Le fait de supprimer le numéro et de laisser le point-virgule (sms:;?&body=Questi..) a fonctionné sur la messagerie native d'Android 7, lorsque je ne voulais pas que le numéro soit pré-rempli.

1 votes

2017-11-17 : Essayé sur Aquaris BQ, Nexus, iPhone 7 et LPhone et cela fonctionne comme un charme. Essayé avec différents navigateurs (Chrome, Firefox, Opera, natif). Merci beaucoup !

0 votes

Sur Android, cela dépend de l'application SMS utilisée. Par exemple, sur Android 9 avec l'application QKSMS, cette fonction tente d'envoyer un message à ; ? et le corps du message n'est pas inclus. (QKSMS n'est pas l'application par défaut, mais elle peut être utilisée par des personnes qui ne veulent pas que le SMS devienne un MMS après avoir atteint une certaine taille). Malheureusement, il n'existe aucun moyen pour la page HTML de déterminer quelle application SMS sera utilisée. Pour cette raison, je vais omettre les liens SMS si je détecte Android.

38voto

MahMoos Points 164

Android et iOS corps seulement :

<a href="sms://;?&body=Hello%20World">Only body</a>

Android et iOS un destinataire seulement avec le corps :

<a href="sms://+15552345678;?&body=Hello%20World">one recipient only with body</a>

Seulement Android plusieurs destinataires avec le corps :

<a href="sms://+15552345678, +15552345679;?&body=Hello%20World">Android multiple recipients with body</a>

Seulement iOS plusieurs destinataires avec le corps :

<a href="sms://open?addresses=+15552345678,+15552345679;?&body=Hello%20World">iOS multiple recipients with body</a>

Notez que le corps doit être codé en URI.

1 votes

Tu l'as écrasé ici. Merci pour la mise à jour de l'ère moderne. Mon validateur HTML me donne du fil à retordre avec la combinaison ";?&", ce qui me fait penser que cela pourrait poser problème, mais j'ai un cas d'utilisation à court terme pour le moment.

0 votes

Est-il possible de remplir le champ objet facultatif d'iOS par sms ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X