HTML लिंक के माध्यम से sms बॉडी टेक्स्ट को प्री-पॉपुलेट कैसे करें


113

पहले से भरे हुए बॉडी के साथ sms ऐप खोलने के लिए html लिंक का उपयोग कैसे करें?

मैंने जो कुछ पढ़ा है, वह इंगित करता है कि sms: 18005555555? Body = bodyTextHere

काम करना चाहिए, लेकिन iPhone पर, यह काम नहीं करता है। अगर मैं शरीर को बाहर निकालता हूं?

मैंने कई उदाहरण देखे हैं जहां क्यूआर कोड एक सफारी लिंक के माध्यम से ऐसा करते हैं। वे बॉडी टेक्स्ट को प्री-पॉप्युलेट करने में कैसे सक्षम हैं?


मुझे आश्चर्य है कि अगर ये क्यूआर स्कैनर सीधे एसएमएस एप्लिकेशन को खोल रहे हैं ...
मेरलिनकैम

मुझे नहीं लगता कि यह संभव है। इन्हें देखें: stackoverflow.com/questions/10848/… stackoverflow.com/questions/1517169/…
जेसन जेनारो

यह अभी भी सच है? कोई विधि नहीं
टायलर

यह 100% संभव है। जानकारी के लिए नीचे मेरा जवाब देखें।
ब्रैड ओरेगो

जवाबों:


178

यह पता चला है कि यह 100% संभव है, हालांकि थोड़ा हैकी।

यदि आप इसे एंड्रॉइड पर काम करना चाहते हैं, तो आपको इस प्रारूप का उपयोग करने की आवश्यकता है:

<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 ("फोन और बॉडी" और "फोन और बॉडी" पर ध्यान दें: दोनों को फ़ील्ड और बॉडी टेक्स्ट को ऑटोफिल करना चाहिए। अधिक के लिए स्रोत देखें। जानकारी)

अपडेट करें:

जाहिरा तौर पर iOS8 को हम पर चीजों को बदलना और बदलना पड़ा, इसलिए कुछ अन्य टिप्पणीकारों / उत्तरदाताओं के लिए धन्यवाद, iOS के लिए एक नई शैली है:

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

(फोन नंबर वैकल्पिक है)


5
नोट: मैंने नवीनतम OS संस्करणों (iOS7 / iPhone 5S / 5C और Android 4.4) पर इनका परीक्षण नहीं किया है। कुछ रिपोर्ट्स हैं कि वे अब काम नहीं कर सकते हैं, खासकर एंड्रॉइड के स्विच के साथ एक देशी एसएमएस ऐप के बजाय हैंगआउट का उपयोग करने के लिए। जब मुझे मौका मिलेगा मैं इसे देखूंगा।
ब्रैड ओरेजो

3
मैंने अब देख लिया क्योंकि यह कभी-कभी काम कर रहा था और कभी-कभी नहीं, जो अजीब लगता था। मेरे निष्कर्ष: यदि आप एक नंबर डायल करते हैं जो आपने कम से कम एक एसएमएस पहले भेजा है, तो लिंक "बॉडी" के साथ ठीक काम करता है। अगर यह पूरी तरह से नया नंबर है, तो आप भाग्य से बाहर हैं और आपको केवल नंबर मिलेगा :(
MMachinegun

7
बड़ा नोट: ऐप जो smsयूआरआई को संभालता है उसे एंड्रॉइड पर बदला जा सकता है और कई निर्माता ऐसा करते हैं; इसलिए जब यह किसी विशिष्ट डिवाइस / ऐप पर काम कर सकता है, तो यह दूसरे पर काम नहीं कर सकता (या बस अपडेट के बाद)। मेरा सुझाव है कि जब तक आप केवल फ़ोन नंबर सेट नहीं करते हैं, तब तक एंड्रॉइड पर इसका उपयोग न करें ; केवल iOS संस्करण और गैर-एंड्रॉइड प्लेटफ़ॉर्म पर इसका उपयोग करें जिसे आपने परीक्षण किया है।
२:१६ बजे २

1
@OrangeDog iOS 7 के लिए मेरा उत्तर देखें stackoverflow.com/questions/6480462/…
paaacman

1
कोई भी लिंक iOS 11.1
Toskan

49

मुझे पता है कि यह एक पुराना धागा है, लेकिन इस पर ठोकर खाई और पाया कि कुछ हिस्से अब प्रासंगिक नहीं हैं।

मैंने पाया है कि यदि आप किसी फ़ोन नंबर को जोड़े बिना पाठ को प्रति-आबादी करना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:

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

1
यही वह उत्तर है जिसकी मुझे तलाश है। सहायता के लिए धन्यवाद!
कोनराड जी

1
महान काम करता है, लेकिन जब OSX से किया जाता है तो यह एक पाठ संदेश को खोलता है:, ?किसी भी विचार को कैसे खाली दिखाना है? मैंने कोशिश की sms:?bodyऔर sms:;?body, पहली बार भेजने की कोशिश की? और दूसरा भेजने की कोशिश करता है;
जोशुआ ओहाना

@JoshuaOhana अगर आप "sms: 0123456789 और शरीर = मेरा संदेश" आजमाते हैं तो क्या होता है? क्षमा करें, हाथ पर किसी भी Apple डिवाइस की पहुंच नहीं है।
अली

Android उपकरणों के लिए काम नहीं करता है। केवल एक? शरीर = चाल करता है।
कामचोर

40

IOS 8 के लिए, यह प्रयास करें:

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

स्विचिंग "?" मेरे लिए "और" काम किया।


3
fwiw मैंने अभी iOS 10 पर इसका परीक्षण किया है और यह अभी भी काम करता है :)।
रॉब डॉसन

@landen यह पूरी तरह से ठीक काम करता है यदि एसएमएस ऐप पहले से ही पृष्ठभूमि में खोला गया था। यदि ऐसा नहीं था, तो मैं सिर्फ फोन नंबर या मैसेज बॉडी के बिना, अपने फोन पर खोलने के लिए ऐप प्राप्त कर रहा हूं। कोई विचार?
DMEM

31

सभी प्रतीकों को इस क्रम में रखें (मैंने केवल इस क्रम में इसका परीक्षण किया क्योंकि यह मेरे लिए सबसे अधिक समझदारी वाला कोड-वार है)।

शरीर कड़ी के लिए सूचना ... मैं तो बस डाल ... ;?&body=। इसके अलावा, ध्यान दें कि मैंने पाया है कि मुझे %20किसी भी स्थान के लिए उपयोग करने की आवश्यकता है ।

मैंने इसे अपने iphone (v। 9.2) और दूसरे android पर टेस्ट किया है और यह ठीक काम करता है।

यह विभिन्न उपकरणों के लिए इसे हैक करने के साथ समस्या को हल करेगा। मेरे पास कोई कलाकृतियां नहीं हैं जब मैंने एसएमएस में इसका परीक्षण किया।

<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 ..) को एंड्रॉइड 7 के मूल संदेशवाहक पर काम किया, जब मैं नहीं चाहता था कि संख्या पूर्व-आबाद हो
ibex

2017-11-17: Aquaris BQ, Nexus, iPhone 7 और LPhone पर कोशिश की गई और यह एक आकर्षण की तरह काम करता है। विभिन्न ब्राउज़रों (क्रोम, फ़ायरफ़ॉक्स, ओपेरा, देशी) के साथ प्रयास किया। आपका बहुत बहुत धन्यवाद!
इरशाह टी।

Android पर यह निर्भर करता है कि किस SMS ऐप का उपयोग किया जा रहा है। उदाहरण के लिए, QKSMS ऐप के साथ एंड्रॉइड 9 पर, यह एक संदेश भेजने की कोशिश करता है।; और शरीर शामिल नहीं है। (QKSMS डिफ़ॉल्ट ऐप नहीं है, लेकिन यह उन लोगों द्वारा उपयोग में लाया जा सकता है, जो यह नहीं चाहते हैं कि एक निश्चित आकार तक पहुंचने के बाद एसएमएस MMS बन जाए।) दुर्भाग्य से HTML पेज के लिए कोई एसएमएस ऐप निर्धारित करने का कोई तरीका नहीं है। उपयोग में हो। यदि मैं Android का पता लगाता हूं तो इस कारण से मैं एसएमएस लिंक को बंद करने जा रहा हूं।
सिलास एस ब्राउन

15

एंड्रॉइड और आईओएस के लिए दो अलग-अलग एंकर टैग की आवश्यकता नहीं है। यह मदद करनी चाहिए।

// बिना संपर्क नंबर के
<a href="sms:?&body=message">Text Message</a>

// संपर्क नंबर के साथ
<a href="sms:1234567890;?&body=message">Text Message</a>

// एंड्रॉइड और iOS दोनों पर काम करता है


1
इसके लिए धन्यवाद, iOS और Android पर बढ़िया काम करता है! से सावधान रहें Without Contact NumberMacOS संस्करण - यह एसएमएस सेट toकरने के लिए?
ओली Khakwani

10

हमें एक प्रस्तावित विधि मिली और परीक्षण किया गया:

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

यहाँ परिणाम हैं:

  • iPhone4 - गलती (संदेश का खाली शरीर);
  • नोकिया एन 8 - ठीक है (संदेश का शरीर - "हैलो मेरे दोस्त", "12345678");
  • HTC मोज़ार्ट - दोष (संदेश "असमर्थित पृष्ठ" ("एसएमएस भेजें" लिंक पर क्लिक करने के बाद));
  • एचटीसी डिजायर - दोष (संदेश "अमान्य प्राप्तकर्ता (ओं):
    <12345678? शरीर = Hellomyfriend>" ("एसएमएस भेजें" लिंक पर क्लिक करने के बाद))।

इसलिए मेरा निष्कर्ष है कि यह वास्तव में काम नहीं करता है - इस पद्धति के साथ कम से कम।


IPhone4 के लिए, मेरा उत्तर देखें bellow 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>

ध्यान दें कि शरीर यूआरआई एन्कोडेड होना चाहिए।


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

ब्रैडोरेगो के समाधान ने मेरे लिए काम किया है, लेकिन यहां एक अधिक विस्तारित जवाब है।

एक छोटा विचार यह है कि आपको %20इसके बजाय शरीर का उपयोग करने की आवश्यकता है +। PHP के लिए, इसका मतलब rawurlencode($body)इसके बजाय का उपयोग करना हैurlencode($body) । अन्यथा आपको रिक्त स्थान के बजाय iOS के पुराने संस्करणों पर संदेश में प्लस संकेत दिखाई देंगे।

यहां एक jQuery फ़ंक्शन है जो iOS उपकरणों के लिए आपके एसएमएस लिंक को परिष्कृत करेगा। एंड्रॉइड / अन्य डिवाइस को सामान्य रूप से काम करना चाहिए और कोड को निष्पादित नहीं करना चाहिए।

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 5 और 6. IOS 7 पर काम नहीं करता है
डेविड सी

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: Isphone नंबरडिंग&body=body पाठ"> लिंक </a> भेज सकते हैं - एम्परसैंड शरीर से पहले =। सिंथेटिक रूप से भ्रमित, हाँ, लेकिन यह मेरे लिए काम कर रहा है और शरीर वांछित संदेश के साथ आबाद है।
ग्रेग जॉनसन

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

आईओएस के लिए एक ही बात को छोड़कर;

sms:;body=message

एसएमएस सेट करने के लिए मेरे द्वारा उपयोग किए गए कोड का एक उदाहरण यहां दिया गया है:

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 के बारे में चिंता करने की ज़रूरत है, बल्कि एंड्रॉइड मैसेजिंग ऐप भी है। नोट 9 के लिए Google मैसेजिंग ऐप और कुछ नए गैलेक्सी टेक्स्ट के साथ नहीं खुलते हैं, लेकिन सैमसंग ऐप काम करता है। समाधान लगता है कि जोड़ने के बाद // एसएमएस के बाद:

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

मुझे पुराने एंड्रॉइड पर इसके साथ कोई समस्या नहीं है जिसे मैंने परीक्षण किया है।
डैन पार्कर

2
इसके अलावा, यह तब काम नहीं करता है जब आप एक फ़ोन नंबर प्रदान नहीं करते हैं (मुझे पता है कि यह मूल प्रश्न का हिस्सा नहीं है, लेकिन यह जानना उपयोगी हो सकता है)
JCisar

1

(बस किसी विषय का छोटा सा), लेकिन शायद अगर आप की खोज आप यहाँ ठोकर सकता है ... markdown में तुम कर सकते हो (parsedown साथ और iOS / एंड्रॉयड पर परीक्षण):

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

0

मुझे पता चला कि आईओएस 7 के साथ आईफोन 4 पर , आप केवल तभी फोन पर एसएमएस डाल सकते हैं, जब आप फोन के संपर्क की सूची में एक फोन नंबर सेट करते हैं।

तो निम्न कार्य करेगा यदि 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 के क्लिक-टू-टेक्स्ट बटन निर्माता का उपयोग करना।

  • डेस्कटॉप पर, वे आपको उपयोगकर्ता के इनपुट से पर्दे के पीछे एक वास्तविक वास्तविक संदेश भेजते हैं।
  • आईओएस या एंड्रॉइड पर आपको इसके बजाय देशी टेक्सटिंग कार्यक्षमता मिलती है।

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


फ़ोन नंबर के बिना बटन नहीं बनाया जा सकता।
मीकल

-3

वर्तमान में न तो Android और न ही iPhones, टैप टू एसएमएस हाइपरलिंक में बॉडी कॉपी तत्व का समर्थन करते हैं। यह प्रोग्रामिक रूप से किया जा सकता है, हालांकि,

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

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

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

क्या वह उद्देश्य सी है? आप जावास्क्रिप्ट से कैसे कॉल करते हैं या HTML में इसका उपयोग करते हैं? असंभव लगता है?
स्पार्कस्पाइडर

क्या यह स्वीकार किए बिना कृपया चिन्हित किया जा सकता है? यह बिल्कुल सवाल का जवाब नहीं है। मैंने वास्तव में कुछ ऐसा पोस्ट किया है जो काम करता है और सवाल का जवाब देता है।
ब्रैड ओरेजो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.