Как предварительно заполнить текст тела sms через ссылку html
Как использовать ссылку html для открытия приложения sms с предварительно заполненным телом?
Все, что я прочитал, похоже, указывает, что смс: 18005555555? body = bodyTextHere
Должен работать, но на iPhone это не работает. Если я выберу тело? Body = bodyTextHere и просто использую sms: phonenumber, он работает.
Я видел несколько примеров, где QR-коды делают это через сафари-ссылку. Как они могут предварительно заполнить текст тела?
Ответы
Ответ 1
Оказывается, это на 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 (обратите внимание, что "Телефон и" тело "и" Телефон и тело" должны автозаполнять как поле: и тело текст. Просмотр источника для дополнительной информации)
UPDATE:
Очевидно, iOS8 должен был пойти и изменить вещи на нас, поэтому, благодаря некоторым другим комментаторам/респондентам, появился новый стиль для iOS:
<a href="sms:/* phone number here */&body=/* body text here */">Link</a>
(номер телефона не является обязательным)
Ответ 2
Я знаю, что это старый поток, но наткнулся на него и обнаружил, что некоторые части больше не актуальны.
Я обнаружил, что если вы хотите просто заполнить текст без добавления номера телефона, вы можете сделать следующее:
sms:?&body=/* message body here */
Ответ 3
Для iOS 8 попробуйте следующее:
<a href="sms:/* phone number here */&body=/* body text here */">Link</a>
Переключение ";" с "&" работал на меня.
Ответ 4
Просто поместите все символы в этом порядке (я тестировал его только в этом порядке, так как он делает для меня самым разумным кодом).
Уведомление для ссылки на тело... Я просто положил... ;?&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>
Ответ 5
Нет необходимости в двух отдельных тегах привязки для Android и iOS. Это должно помочь.
//без контактного номера
<a href="sms:?&body=message">Text Message</a>
//с контактным номером
<a href="sms:1234567890;?&body=message">Text Message</a>
//Работает как на Android, так и на iOS
Ответ 6
Мы нашли предложенный метод и протестировали:
<a href="sms:12345678?body=Hello my friend">Send SMS</a>
Вот результаты:
- iPhone4 - ошибка (пустой текст сообщения);
- Nokia N8 - ok (тело сообщения - "Привет, мой друг", To
"12345678" );
- HTC Mozart - ошибка (сообщение "неподдерживаемая страница" (после нажатия на
Ссылка "Отправить sms" ));
- HTC Desire - ошибка (сообщение "Недопустимые получатели (получатели):
< 12345678? body = Hellomyfriend > "(после нажатия на ссылку" Отправить смс ")).
Поэтому я заключаю, что это действительно не работает - по крайней мере с этим методом.
Ответ 7
Чтобы получить 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.
Все они работали, как ожидалось.
Они работали без номера телефона или адреса электронной почты.
Ответ 8
<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;
})
Ответ 9
Решение Bradorego - это то, что сработало для меня, но вот более расширенный ответ.
Небольшое соображение состоит в том, что вам нужно закодировать тело, используя %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:$1;');
});
})();
По возможности используйте вместо a[href^="sms:"]
класс, например a.sms-link
.
Ответ 10
iPhone не принимает текст сообщения, он будет принимать только номер телефона. Вы можете увидеть это здесь https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html#//apple_ref/doc/uid/TP40007899-CH7-SW1
Ответ 11
Ну, вам нужно не только беспокоиться об iOS и Android, но и о том, какое приложение для обмена сообщениями для Android. Приложение обмена сообщениями Google для Note 9 и некоторых новых галактик не открывается с текстом, но приложение Samsung работает. Решением кажется добавить//после смс:
так что смс://15551235555
<a href="sms:/* phone number here */?body=/* body text here */">Link</a>
должно быть
<a href="sms://15551235555?body=Hello">Link</a>
Ответ 12
<a href="sms:/* phone number here */&body=/* body text here */">Link</a>
Это работает на моем iPhone 5S!
Ответ 13
Я подозреваю, что в большинстве приложений вы не знаете, кому писать, поэтому вы хотите заполнить только текст, а не номер. Это работает так, как вы ожидали, просто оставив номер - вот как выглядят 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;
Ответ 14
(Немного темы), но, возможно, если бы вы искали, вы могли бы наткнуться здесь... В уценке (протестировано с parsedown и на iOS/android) вы могли бы сделать:
[Link](sms:phone_number,?&body=URL_encoded_body_text)
//[send sms](sms:1234567890;?&body=my%20very%20interesting%20text)
Ответ 15
Для использования 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>
Ответ 16
Я узнал, что на 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>
Ответ 17
Каждая версия ОС имеет другой способ сделать это. Взгляните на sms-link library
Ответ 18
Одной из проблем с ссылкой "щелчок к тексту" является решение сценария рабочего стола, где нет собственного приложения для текстовых сообщений. Решение состоит в том, чтобы использовать создатель кнопки Zipwhip Click-to-Text.
- На рабочем столе они отправляют вам реальное текстовое сообщение за кадром из пользовательского ввода.
- На iOS или Android вы получаете встроенную текстовую функциональность.
https://www.zipwhip.com/create-sms-button/
Ответ 19
Android и iOS только для 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.
Ответ 20
Ни 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];