HTMLリンクを使用して、事前に入力された本文でSMSアプリを開く方法は?
私が読んだすべてがsms:18005555555?body = bodyTextHereを示しているようです
機能するはずですが、iPhoneでは機能しません。?body = bodyTextHereを取り出し、sms:phonenumberを使用するだけで機能します。
QRコードがサファリリンクを介してこれを行ういくつかの例を見てきました。どのようにして本文を事前に入力できますか?
HTMLリンクを使用して、事前に入力された本文でSMSアプリを開く方法は?
私が読んだすべてがsms:18005555555?body = bodyTextHereを示しているようです
機能するはずですが、iPhoneでは機能しません。?body = bodyTextHereを取り出し、sms:phonenumberを使用するだけで機能します。
QRコードがサファリリンクを介してこれを行ういくつかの例を見てきました。どのようにして本文を事前に入力できますか?
回答:
少しハッキーですが、これは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>
(電話番号はオプションです)
sms
URI を処理するアプリはAndroidで変更でき、多くのメーカーがこれを行っています。したがって、特定のデバイス/アプリでは動作する可能性がありますが、別のデバイス/アプリでは動作しない可能性があります(または単に更新後)。私の提案は、電話番号を設定するだけの場合を除き、Androidではこれを使用しないことです。テストしたiOSバージョンとAndroid以外のプラットフォームでのみ使用してください。
私はこれが古いスレッドであることを知っていますが、それを偶然見つけました、そして、いくつかの部分がもはや関係がないことに気付きました。
電話番号を追加せずにテキストごとに入力する場合は、次のことができることがわかりました。
sms:?&body=/* message body here */
?
ます。私が試したsms:?body
とsms:;?body
、最初の試みはに送信しますか?2番目はに送信しようとします。
iOS 8の場合、これを試してください。
<a href="sms:/* phone number here */&body=/* body text here */">Link</a>
「;」の切り替え 「&」を使って私のために働いた。
すべてのシンボルをこの順序で並べるだけです(コード順で最も意味があるので、この順序でのみテストしました)。
上体リンクのための注意事項...私はちょうど置きます... ;?&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>
AndroidとiOSの2つの別個のアンカータグは必要ありません。これは役立つはずです。
//連絡先番号なし
<a href="sms:?&body=message">Text Message</a>
//連絡先番号付き
<a href="sms:1234567890;?&body=message">Text Message</a>
// AndroidとiOSの両方で機能します
Without Contact Number
MacOS のバージョンにto
?
私たちは提案された方法を見つけてテストしました:
<a href="sms:12345678?body=Hello my friend">Send SMS</a>
結果は次のとおりです。
したがって、私はそれが実際に機能しないと結論します-少なくともこの方法では。
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エンコードする必要があることに注意してください。
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でテストしました。
それらはすべて期待どおりに機能しました。彼らは電話番号や電子メールアドレスなしでも働いた。
ブラドレゴの解決策は私にとってうまくいったものですが、これはより拡張された答えです。
小さな考慮事項は、%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:"]
、可能な場合。
<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;
})
iPhoneはメッセージテキストを受け付けず、電話番号のみを受け取ります。これはhttps://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html#//apple_ref/doc/uid/TP40007899-CH7-SW1で確認できます。
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>
ほとんどのアプリケーションでは、誰にテキストを送信するかわからないのではないかと思います。そのため、番号ではなくテキスト本文のみを入力します。これは、数字を省略するだけで期待どおりに機能します。その場合の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;
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>
(話題の少しだけ)、しかし、あなたが検索した場合多分あなたはここでつまずく可能性が... 値下げで(parsedownととiOS /アンドロイド上でテスト)あなたが行うことができます:
[Link](sms:phone_number,?&body=URL_encoded_body_text)
//[send sms](sms:1234567890;?&body=my%20very%20interesting%20text)
OSのバージョンによって方法は異なります。見てみましょうSMSリンクライブラリを
Click-to-Textリンクの問題の1つは、ネイティブテキストメッセージアプリが存在しないデスクトップシナリオを解決することです。解決策は、ZipwhipのClick-to-Textボタンクリエーターを使用することです。
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];