Как предварительно заполнить текст текста sms через html-ссылку



Как использовать html-ссылку, чтобы открыть приложение sms с предварительно заполненным телом?



все, что я прочитал, похоже, указывает на то, что sms: 18005555555?тело=bodyTextHere



должно работать, но на iPhone, это не работает. Если я выну его ?body=bodyTextHere, и просто использовать sms: номер телефона, он работает.



Я видел несколько случаев, когда QR-коды делают это через ссылку safari. Как они могут предварительно заполнить основной текст?

747   17  

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 вы получаете родную функциональность текстовых сообщений вместо этого.

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

(просто немного темы), но, возможно, если вы искали, вы могли бы наткнуться здесь... в 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

    Ничего не найдено.