Почему иногда iOS не может открыть смс URL на React Native - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть проблема, которую я пытаюсь понять: почему я получаю время от времени ошибки Sentry, говорящие мне, что iPhone X или XR не может открыть URL-адрес SMS?

У меня есть эта ошибка: Невозможно открыть URL: sms: & body = ...

Но что еще более странно, что, когда я смотрю на свой хлебный крошка, я понимаю, что эта ошибка возникает, когда пользователь даже не сделал необходимых действий для открытия приложения SMS!

Отправляемое мною смс содержит URL-адрес, сгенерированный динамическими ссылками Firebase.

Вот код для создания URL смс и код, который отправляет смс

InviteFriends.js

export default inviteFriends = () => {
    let sharingToken = store.getState().user.share_token

    firebase.dynamicLinks().buildShortLink({
        link: `http://mywebsite?type=invite&sharing=${sharingToken}`,
        domainUriPrefix: 'https://mylink.page.link',
        navigation: {...},
        android: {...},
        ios: {...}
    })
    .then((url) => {
        sms('', i18n.t('account.addFriends.searchUser.hint.sms', {link: url}))

    })
sms.js

const sms = (phone = '', body = '') => {
  const sep = Platform.OS === 'ios' ? '&' : '?'
  const url = `sms:${phone}${body ? `${sep}body=${encodeURIComponent(body)}` : ''}`

  const supported = await Linking.canOpenURL(url)

  if (!supported) {
    return Promise.reject(new Error('Provided URL can not be handled')) 
  }

  return Linking.openURL(url)
}

Что я нахожу странным, так это то, что мне кажется, что если открытие приложения SMS не поддерживается, я должен был бы вместо этого получите сообщение «Предоставленный URL не может быть обработан». Я не прав?

Спасибо,

Виктор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...