Как предварительно заполнить текст текста sms через html-ссылку
Как использовать html-ссылку, чтобы открыть приложение sms с предварительно заполненным телом?
все, что я прочитал, похоже, указывает на то, что sms: 18005555555?тело=bodyTextHere
должно работать, но на iPhone, это не работает. Если я выну его ?body=bodyTextHere, и просто использовать sms: номер телефона, он работает.
Я видел несколько случаев, когда QR-коды делают это через ссылку safari. Как они могут предварительно заполнить основной текст?
17 ответов:
оказывается, это 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 (обратите внимание на " телефон и ?body " и "Phone and ;body" должны автоматически заполнять как поле to:, так и основной текст. Просмотр источника для получения дополнительной информации информация)
обновление:
видимо iOS8 пришлось пойти и изменить вещи на нас, так что благодаря некоторым другим комментаторам / ответчикам, есть новый стиль для iOS:
<a href="sms:/* phone number here */&body=/* body text here */">Link</a>(номер телефона не является обязательным)
для iOS 8, Попробуйте это:
<a href="sms:/* phone number here */&body=/* body text here */">Link</a>переключение"; " с " & " работало для меня.
Я знаю, что это старая нить, но наткнулся на нее и обнаружил, что некоторые части больше не актуальны.
Я обнаружил, что если вы хотите просто заполнить текст без добавления номера телефона, вы можете сделать следующее:
sms:?&body=/* message body here */
просто поместите все символы в этом порядке (я только проверил его в этом порядке, так как это имеет для меня самый разумный код).
обратите внимание на ссылку тела... Я просто положил...
;?&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>
мы нашли предложенный метод и протестировали:
<a href="sms:12345678?body=Hello my friend">Send SMS</a>вот результаты:
- iPhone4-ошибка (пустое тело сообщения);
- Nokia N8-ok (тело сообщения - "Hello my friend", To "12345678");
- HTC Mozart - ошибка (сообщение "неподдерживаемая страница" (после нажатия на кнопку "Отправить sms" ссылка));
- HTC Desire-fault (сообщение " недопустимые получатели (ы):
"(после нажатия на кнопку " Отправить СМС" соединение.))поэтому я заключаю, что это действительно не работает - по крайней мере, с этим методом.
<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
решение Брадорего-это то, что сработало для меня, но вот более развернутый ответ.
небольшое соображение заключается в том, что вам нужно кодировать тело с помощью
%20вместо+. Для PHP это означает использованиеrawurlencode($body)вместоurlencode($body). В противном случае вы увидите знаки плюса в сообщении на старых версиях iOS, а не пробелы.вот функция jQuery, которая будет переоборудовать ваши SMS-ссылки для устройств iOS. 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:;'); }); })();рассмотрите возможность использования класса как
a.sms-linkвместоa[href^="sms:"]если это возможно.
чтобы получить sms: и mailto: ссылки для работы как на iPhone, так и на Android, без какого-либо javascript, попробуйте следующее:
<a href="sms:321-555-1111?&body=This is what I want to sent">click to text</a> <a href="mailto:[email protected]?&subject=My subject&body=This is what I want to sent">click to email</a>Я тестировал его на Chrome для Android и iPhone, и Safari на iPhone.
Все они работали, как и ожидалось. Они работали без номера телефона или адреса электронной почты, а также.
<a href="sms:/* phone number here */&body=/* body text here */">Link</a>это работает на моем iPhone 5S!
Я подозреваю, что в большинстве приложений вы не будете знать, кому писать, поэтому вы хотите только заполнить текстовое тело, а не номер. Это работает так, как вы ожидаете, просто оставив номер-вот как выглядят 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;
нет необходимости в двух отдельных тегах привязки для Android и iOS. Это должно помочь.
// Без Контактного Номера
<a href="sms:?&body=message">Text Message</a>// С Контактным Номером
<a href="sms:1234567890;?&body=message">Text Message</a>/ / работает как на Android, так и на iOS
я узнал, что на iPhone 4 с IOS 7, вы можете поместить тело в 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>
каждая версия ОС имеет другой способ сделать это. Взгляните на библиотека sms-ссылок
одна из проблем с щелчком по текстовой ссылке-это решение сценария рабочего стола, где нет собственного текстового приложения. Решение заключается в использовании нажми-текст Zipwhip кнопку Творца.
- на рабочем столе они отправляют вам фактическое реальное текстовое сообщение за кулисами из ввода пользователя.
- на iOS или Android вы получаете родную функциональность текстовых сообщений вместо этого.
(просто немного темы), но, возможно, если вы искали, вы могли бы наткнуться здесь... в markdown (протестировано с parsedown и на iOS / android) вы можете сделать:
[Link](sms:phone_number,?&body=URL_encoded_body_text) //[send sms](sms:1234567890;?&body=my%20very%20interesting%20text)
ни Android, ни iPhones в настоящее время не поддерживают элемент body copy в гиперссылке 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];
Comments