Так что в основном у меня есть код, который уже работает для устройств 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 Но это не значит, что они не поддерживают несколько телефонных номеров.