HTMLリンクを介してSMS本文テキストを事前入力する方法


113

HTMLリンクを使用して、事前に入力された本文でSMSアプリを開く方法は?

私が読んだすべてがsms:18005555555?body = bodyTextHereを示しているようです

機能するはずですが、iPhoneでは機能しません。?body = bodyTextHereを取り出し、sms:phonenumberを使用するだけで機能します。

QRコードがサファリリンクを介してこれを行ういくつかの例を見てきました。どのようにして本文を事前に入力できますか?


これらのQRスキャナーが代わりにSMSアプリを直接開いているの
でしょ

それは可能ではないと思います。:これらを参照してくださいstackoverflow.com/questions/10848/...の stackoverflow.com/questions/1517169/...
ジェイソン・ジェンナーロ

これはまだ本当ですか?
タイラー2013

これは100%可能です。詳細については、以下の私の回答を参照してください。
Brad Orego 2013年

回答:


178

少しハッキーですが、これは100%可能です。

Androidで動作させる場合は、次の形式を使用する必要があります。

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

iOSで動作させるには、次のものが必要です。

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

こちらのライブデモ:http : //bradorego.com/test/sms.html(「Phone and?body」と「Phone and; body」はto:フィールドと本文の両方のテキストを自動入力する必要があります。ソースを表示して詳細を確認してください情報)

更新:

どうやらiOS8は私たちの状況を変えなければならなかったので、他のコメンター/レスポンダーのおかげで、iOSの新しいスタイルがあります。

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

(電話番号はオプションです)


5
注:私はこれらを最新のOSバージョン(iOS7 / iPhone 5S / 5CおよびAndroid 4.4)でテストしていません。特にネイティブのSMSアプリの代わりにハングアウトを使用するようにAndroidを切り替えた場合、それらが機能しなくなる可能性があるという報告があります。機会があれば調べます。
Brad Orego 2014年

3
動作している場合と動作していない場合があり、奇妙に思えたので、今調べました。私の調査結果:以前にSMSを1回以上送信したことがある番号をダイヤルすると、リンクは「body」で正常に機能します。それが完全に新しい番号である場合、あなたは運が
悪く

7
大きな注意:sms URI を処理するアプリはAndroidで変更でき、多くのメーカーがこれを行っています。したがって、特定のデバイス/アプリでは動作する可能性がありますが、別のデバイス/アプリでは動作しない可能性があります(または単に更新後)。私の提案は、電話番号を設定するだけの場合を除き、Androidではこれを使用しないことです。テストしたiOSバージョンとAndroid以外のプラットフォームでのみ使用してください。
fregante 2015

1
iOSの7のための私の答えを参照@OrangeDog stackoverflow.com/questions/6480462/...
paaacman

1
iOS 11.1の本文でリンクが機能しないようです
Toskan

49

私はこれが古いスレッドであることを知っていますが、それを偶然見つけました、そして、いくつかの部分がもはや関係がないことに気付きました。

電話番号を追加せずにテキストごとに入力する場合は、次のことができることがわかりました。

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

1
それが私が探していた答えです。助けてくれてありがとう!
Konrad G

1
うまく機能しますが、OSXから完了すると、テキストメッセージTo:が開き?ます。私が試したsms:?bodysms:;?body、最初の試みはに送信しますか?2番目はに送信しようとします。
Joshua Ohana

@JoshuaOhana「sms:?0123456789&body = My Message」を実行するとどうなりますか?手持ちのAppleデバイスにはアクセスできません。
Ali

Androidデバイスでは機能しません。?body =だけがトリックを行います。
Doodlemeat

40

iOS 8の場合、これを試してください。

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

「;」の切り替え 「&」を使って私のために働いた。


3
fwiw私はこれをiOS 10でテストしたところ、まだ動作します:)。
Rob Dawson

@landen SMSアプリが既にバックグラウンドで開かれている場合、これは完全に正常に動作します。そうでない場合は、電話番号やメッセージ本文なしで、スマートフォンでアプリを開くだけです。何か案は?
DMEM

31

すべてのシンボルをこの順序で並べるだけです(コード順で最も意味があるので、この順序でのみテストしました)。

上体リンクのための注意事項...私はちょうど置きます... ;?&body=。また、%20すべてのスペースに使用する必要があることがわかりました。

私はそれを私のiphone(v。9.2)と別のandroidでテストしましたが、問題なく動作します。

これにより、さまざまなデバイスでハッキングする必要があるという問題が解決します。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>

数値を削除してセミコロンを残すだけ(sms:;?&body = Questi ..)は、Android 7ネイティブメッセンジャーで機能しました。数値を事前に入力したくない場合
ibex

2017-11-17:Aquaris BQ、Nexus、iPhone 7、LPhoneを試してみましたが、これは魅力のように機能します。さまざまなブラウザ(Chrome、Firefox、Opera、ネイティブ)で試した。どうもありがとう!
Urosh T.

Androidでは、使用されているSMSアプリによって異なります。たとえば、QKSMSアプリを搭載したAndroid 9では、これは;?にメッセージを送信しようとします。本体は付属しません。(QKSMSはデフォルトのアプリではありませんが、一定のサイズに達した後、SMSをMMSにしたくない人が使用している可能性があります。)残念ながら、HTMLページでどのSMSアプリを使用するかを決定する方法はありません。使用している。このため、Androidが検出された場合は、SMSリンクを省略します。
Silas S. Brown、

15

AndroidとiOSの2つの別個のアンカータグは必要ありません。これは役立つはずです。

//連絡先番号なし
<a href="sms:?&body=message">Text Message</a>

//連絡先番号付き
<a href="sms:1234567890;?&body=message">Text Message</a>

// AndroidとiOSの両方で機能します


1
これをありがとう、iOSとAndroidでうまく動作します!Without Contact NumberMacOS のバージョンにto?
注意してください-SMS

10

私たちは提案された方法を見つけてテストしました:

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

結果は次のとおりです。

  • iPhone4-障害(空のメッセージ本文);
  • ノキアN8-わかりました(メッセージの本文-"こんにちは私の友人"、 "12345678"へ);
  • HTCモーツァルト-障害(「サポートされていないページ」というメッセージ(「SMSの送信」リンクをクリックした後))。
  • HTC Desire-fault(メッセージ "Invalid recipients(s):
    <12345678?body = Hellomyfriend>"( "Send sms"リンクをクリックした後))。

したがって、私はそれが実際に機能しないと結論します-少なくともこの方法では。


iPhone4については、stackoverflow.com
questions / 6480462 /…の

7

AndroidおよびiOS本体のみ:

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

AndroidとiOSで受信者が1人のみの場合:

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

本文付きのAndroid複数受信者のみ

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

本文付きのiOS複数受信者のみ

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

本文はURIエンコードする必要があることに注意してください。


5

sms:およびmailto:リンクを取得するには、JavaScriptを使用せずにiPhoneとAndroidの両方で機能するようにするには、次のようにします。

<a href="sms:321-555-1111?&body=This is what I want to sent">click to text</a>


<a href="mailto:someone@sample.com?&subject=My subject&body=This is what I want to sent">click to email</a>

AndroidとiPhoneのChromeとiPhoneのSafariでテストしました。
それらはすべて期待どおりに機能しました。彼らは電話番号や電子メールアドレスなしでも働いた。


4

ブラドレゴの解決策は私にとってうまくいったものですが、これはより拡張された答えです。

小さな考慮事項は、%20ではなくを使用して本文をエンコードする必要があることです+。PHPの場合、これはのrawurlencode($body)代わりに使用することを意味しますurlencode($body)。そうしないと、古いバージョンのiOSではスペースではなくプラス記号がメッセージに表示されます。

以下は、iOSデバイス用のSMSリンクに適合するjQuery関数です。Android /その他のデバイスは正常に動作し、コードを実行しません。

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

以下のようなクラスを使用することを検討してa.sms-link代わりにa[href^="sms:"]、可能な場合。


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

IOS 7上で最もアンドロイド、およびIOS 5と6のんではない仕事に取り組んでいます
デヴィッド・C

3

iPhoneはメッセージテキストを受け付けず、電話番号のみを受け取ります。これはhttps://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html#//apple_ref/doc/uid/TP40007899-CH7-SW1で確認できます


1
このページはアクセスできなくなりました
Kirk Hammett

1
これはiOS8ではもう当てはまりません。<a href="sms:[phone number]&body=body text"> Link </a>を送信できます-アンパサンドはbody =の前にあります。はい、構文的に混乱しますが、それは私にとってはうまくいき、本文には必要なメッセージが表示されます。
グレッグジョンソン

1
上記のリンクに記載されているように、iOS 10.2が「ボディ」パーツをサポートしていないことを確認しました。
Nicodemuz 2017年


3

Androidを使用するには、以下のコードを使用します

<a href="sms:+32665?body=reg fb1>Send SMS</a>

iOSの場合、以下のコードを使用できます

<a href="sms:+32665&body=reg fb1>Send SMS</a>

以下のコードは、iOとAndroidの両方で機能します

<a href="sms:+32665?&body=reg fb1>Send SMS</a>

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

これは私のiPhone 5Sで動作します!


2

ほとんどのアプリケーションでは、誰にテキストを送信するかわからないのではないかと思います。そのため、番号ではなくテキスト本文のみを入力します。これは、数字を省略するだけで期待どおりに機能します。その場合のURLは次のようになります。

sms:?body=message

iOSの場合を除いて同じです。

sms:;body=message

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;

2

iOSとAndroidについて心配する必要があるだけでなく、Androidメッセージングアプリもあります。Note 9用のGoogleメッセージングアプリと一部の新しいGalaxyがテキストで開かないが、samsungアプリは機能する。解決策は、SMSの後に//を追加するようです:

so sms:// 15551235555

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

する必要があります

<a href="sms://15551235555?body=Hello">Link</a>

これがすべてのアンドロイドで機能するのか、特定のバージョンで機能するのか知っていますか?これは私のPixel 2、android 9で機能したバージョンです
-JCisar

私もテストした古いアンドロイドでこれで問題はありませんでした。
Dan Parker、

2
また、電話番号を提供しないと機能しないようです(元の質問の一部ではないことはわかっていますが、知っておくと役に立ちます)
JCisar

1

(話題の少しだけ)、しかし、あなたが検索した場合多分あなたはここでつまずく可能性が... 値下げで(parsedownととiOS /アンドロイド上でテスト)あなたが行うことができます:

   [Link](sms:phone_number,?&body=URL_encoded_body_text)
   //[send sms](sms:1234567890;?&body=my%20very%20interesting%20text)

0

IOS 7搭載したiPhone 4では、電話の連絡先リストに電話番号を設定した場合にのみ、SMSに本文を設定できることがわかりました。

したがって、0606060606が連絡先の一部である場合、次のように機能します。

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

ちなみに、iOS 6(iPhone 3GS)では、本体のみで動作します。

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


-1

Click-to-Textリンクの問題の1つは、ネイティブテキストメッセージアプリが存在しないデスクトップシナリオを解決することです。解決策は、ZipwhipのClick-to-Textボタンクリエーターを使用することです。

  • デスクトップでは、ユーザーの入力から舞台裏で実際のテキストメッセージを送信します。
  • iOSまたはAndroidでは、代わりにネイティブのテキストメッセージ機能を利用できます。

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


電話番号のないボタンは作成できません。
ミハル

-3

AndroidもiPhoneも、現在、Tap to SMSハイパーリンクの本文コピー要素をサポートしていません。プログラムで行うこともできますが、

MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = self;

picker.recipients = [NSArray arrayWithObject:@"48151623"];  
picker.body = @"Body text.";

[self presentModalViewController:picker animated:YES];
[picker release];

それは目的Cですか?JavaScriptからそれをどのように呼び出すか、またはHTMLで使用するのですか?不可能に聞こえますか?
sparkyspider 2012

これは承認済みとしてマークを外してください。これは質問にまったく答えません。私は実際に機能し、質問に答える何かを投稿しました。
ブラッド・オレゴ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.