Как вызвать перенаправление SMS URI в React-Native для нескольких телефонных номеров? - PullRequest
0 голосов
/ 30 апреля 2020

Так что в основном у меня есть код, который уже работает для устройств android, его цель - запустить приложение для обмена сообщениями / смс устройства с предварительно заполненным текстом в нем. Это также открывает приложение iMessage на iOS с уже успешно заполненным сообщением, но, к сожалению, оно не поддерживает несколько телефонных номеров.

Следующий код в настоящее время является примером того, что я пытаюсь делать. Возвращенное значение из generateURI() позже используется в команде реагировать нативной Linking.openURL().

export function generateURI(arrayOfPhoneNumbers, event) {
  var url = `sms:`

  for(var i = 0; i < arrayOfPhoneNumbers.length; i++) {
    url += `${arrayOfPhoneNumbers[i]},`
  }
  url = url.slice(0, -1); //remove last comma
  url += `${getSMSDivider()}body=Test Message`

  return url
}

function getSMSDivider() {
  return Platform.OS === "ios" ? "&" : "?";
}

Стоит отметить:

Многие шаблоны и стандарты схемы URI Apple, похоже, не уважает их, перечисленных по следующей ссылке: https://tools.ietf.org/html/rfc5724. Например: каждое поле sms должно использовать символ ?, но для iOS устройств работает только &, кроме того, если вы кодируете строковое значение, переданное как атрибут body=, android прекрасно его понимает Но айфонов нет. Так что, к сожалению, рассмотрение документированного стандарта не является жизнеспособным решением при работе с собственной книгой правил Apple.

Также у Apple есть очень странное утверждение, говорящее The URL string must not include any message text or other information. по следующей ссылке https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html Но это не значит, что они не поддерживают несколько телефонных номеров.

...