HTML 링크를 통해 SMS 본문 텍스트를 미리 채우는 방법


113

html 링크를 사용하여 본문이 미리 채워진 SMS 앱을 여는 방법은 무엇입니까?

내가 읽은 모든 것은 sms : 18005555555? body = bodyTextHere를 나타내는 것 같습니다.

작동하지만 iPhone에서는 작동하지 않습니다. ? body = bodyTextHere를 꺼내고 sms : phonenumber 만 사용하면 작동합니다.

QR 코드가 사파리 링크를 통해이를 수행하는 여러 사례를 보았습니다. 본문 텍스트를 어떻게 미리 채울 수 있습니까?


이 QR 스캐너가 대신 SMS 앱을 직접 여는 것인지 궁금합니다 ...
— merlincam 2011-06-25

나는 그것이 가능하다고 생각하지 않는다. 다음을 참조하십시오 : stackoverflow.com/questions/10848/… stackoverflow.com/questions/1517169/…
— Jason Gennaro 2011 년

여전히 사실인가요? 방법이 없나요?
— tyler

이것은 100 % 가능합니다. 자세한 내용은 아래 내 대답을 참조하십시오.
— Brad Orego

답변:


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)에서는 테스트하지 않았습니다. 특히 Android가 기본 SMS 앱 대신 행 아웃을 사용하도록 전환하면서 더 이상 작동하지 않을 수 있다는보고가 있습니다. 기회가되면 조사하겠습니다.
— Brad Orego 2014 년

3
때때로 작동하고 때로는 작동하지 않았기 때문에 지금 살펴 보았습니다. 내 결과 : 이전에 SMS를 한 번 이상 보낸 적이있는 번호로 전화를 걸면 링크가 "본문"과 잘 작동합니다. 그것은 완전히 새로운 번호가 있다면 당신은 운이있어, 당신은 단지 :( 수를 얻을
— MMachinegun

7
큰 참고 사항 : 핸들하는 응용 프로그램 smsURI는 안드로이드와 많은 제조 업체에 변경 될 수 있습니다 이렇게; 따라서 특정 장치 / 앱에서는 작동하지만 다른 장치에서는 작동하지 않을 수 있습니다 (또는 단순히 업데이트 후에). 내 제안은 전화 번호 만 설정하지 않는 한 Android에서 사용 하지 않는 것입니다. 테스트 한 iOS 버전 및 Android가 아닌 플랫폼에서만 사용하십시오.
— fregante

1
@OrangeDog는 아이폰 OS 7에 대한 내 대답을 참조 stackoverflow.com/questions/6480462/...
— paaacman

1
링크가 iOS 11.1에서 본문과 작동하지 않는 것 같습니다
— Toskan

49

나는 이것이 오래된 스레드라는 것을 알고 있지만 우연히 발견되어 일부 부품이 더 이상 관련이 없다는 것을 발견했습니다.

전화 번호를 추가하지 않고 텍스트 만 채우려면 다음을 수행 할 수 있습니다.

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

1
그것이 제가 찾고 있던 답입니다. 도와 주셔서 감사합니다!
— Konrad G

1
잘 작동하지만 OSX에서 완료되면 텍스트 메시지가 열립니다. To : ?, 공백으로 표시하는 방법에 대한 아이디어가 있습니까? 나는 시도 sms:?body하고 sms:;?body, 첫 번째로 보내려고? 두 번째는에 전송을 시도합니다.
— Joshua Ohana

@JoshuaOhana "sms :? 0123456789 & body = My Message"를 시도하면 어떻게됩니까? 죄송합니다. 현재 Apple 기기에 액세스 할 수 없습니다.
— 알리

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 어떤 공간에도 을 .

나는 내 아이폰 (v. 9.2)과 다른 안드로이드에서 그것을 테스트했으며 잘 작동합니다.

이렇게하면 다른 장치에 대해 해킹해야하는 문제가 해결됩니다. 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. 2017

Android에서는 사용중인 SMS 앱에 따라 다릅니다. 예를 들어, QKSMS 앱이있는 Android 9에서는;?에 메시지를 보내려고합니다. 그리고 몸은 포함되지 않습니다. (QKSMS는 기본 앱은 아니지만 특정 크기에 도달 한 후 SMS가 MMS가되는 것을 원하지 않는 사람들이 사용할 수 있습니다.) 안타깝게도 HTML 페이지에서 어떤 SMS 앱을 사용할 것인지 결정할 방법이 없습니다. 사용 중입니다. 이런 이유로 Android를 감지하면 SMS 링크를 생략하겠습니다.
— Silas S. Brown

15

Android 및 iOS에 대해 두 개의 별도 앵커 태그가 필요하지 않습니다. 이것은 도움이 될 것입니다.

// 연락처 없음
<a href="sms:?&body=message">Text Message</a>

// 연락처 번호 포함
<a href="sms:1234567890;?&body=message">Text Message</a>

// Android 및 iOS 모두에서 작동


1
감사합니다. iOS 및 Android에서 잘 작동합니다! 조심 Without Contact Number맥 OS에 버전 - 그것은 SMS를 설정 to에?
— 올리 Khakwani

10

제안 된 방법을 찾고 테스트했습니다.

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

결과는 다음과 같습니다.

  • iPhone4-오류 (메시지 본문이 비어 있음)
  • Nokia N8-ok (메시지 본문- "Hello my friend", To "12345678");
  • HTC Mozart-오류 ( "지원되지 않는 페이지"메시지 ( "Send sms"링크를 클릭 한 후));
  • HTC
    Desire- 오류 ( "Invalid recipients (s) : <12345678? body = Hellomyfriend>"메시지 ( "Send sms"링크를 클릭 한 후)).

따라서 적어도이 방법으로는 작동하지 않는다고 결론을 내립니다.


iPhone4의 경우 내 답변을 참조하십시오. stackoverflow.com/questions/6480462/…
— paaacman

8

Android 및 iOS 본체 만 :

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

Android 및 iOS 한 명의 수신자 만 본문 :

<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 : 링크를 자바 스크립트없이 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

Bradorego의 솔루션이 저에게 효과적이지만 여기에 더 확장 된 답변이 있습니다.

작은 고려 사항은 %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;
})

대부분의 Android, IOS 5 및 6에서 작동합니다. IOS 7에서는 작동하지 않습니다.
— David C

3

iPhone은 메시지 텍스트를 받아들이지 않고 전화 번호 만받습니다. https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html#//apple_ref/doc/uid/TP40007899-CH7-SW1에서 볼 수 있습니다.


1
이 페이지는 더 이상 액세스 할 수 없습니다
— 커크 해밋

1
iOS8에서는 더 이상 사실이 아닙니다. <a href="sms:[phone number]&body=body text"> 링크 </a>를 보낼 수 있습니다. 앰퍼샌드는 body = 앞에옵니다. 구문 론적으로 혼란 스럽지만, 저에게 효과적이며 본문은 원하는 메시지로 채워집니다.
— Greg Johnson

1
위 링크에 설명 된대로 iOS 10.2가 '본문'부분을 지원하지 않음을 확인했습니다.
— Nicodemuz


3

Android를 사용하려면 아래 코드를 사용하십시오.

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

iOS의 경우 아래 코드를 사용할 수 있습니다.

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

iOS와 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 메시징 앱은 텍스트로 열리지 않지만 삼성 앱은 작동합니다. 해결책은 sms 뒤에 // 추가하는 것 같습니다.

그래서 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

(그냥 약간의 주제),하지만 검색하면 여기에서 우연히 발견 할 수 있습니다 ... markdown (parsedown 및 iOS / android에서 테스트)에서 다음을 수행 할 수 있습니다.

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

0

나는에, 그 발견 IOS 7 아이폰 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

클릭-텍스트 링크의 문제 중 하나는 기본 문자 메시지 앱이없는 데스크톱 시나리오를 해결하는 것입니다. 해결책은 Zipwhip의 Click-to-Text 버튼 생성기를 사용하는 것입니다.

  • 데스크톱에서는 사용자의 입력을 통해 실제 실제 텍스트 메시지를 전송합니다.
  • iOS 또는 Android에서는 대신 기본 문자 메시지 기능을 사용할 수 있습니다.

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


전화 번호가 없으면 버튼을 만들 수 없습니다.
— Michal

-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에서 사용합니까? 불가능한 것 같나요?
— 스파키 스파이더

수락 된 것으로 표시를 해제 할 수 있습니까? 이것은 질문에 전혀 대답하지 않습니다. 나는 실제로 작동하고 질문에 대답하는 것을 게시했습니다.
— Brad Orego
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.