Как запустить и открыть почтовый клиент React-native?

Я не хочу составлять электронное письмо. Я просто хочу, чтобы иметь возможность запускать основное приложение электронной почты на пользовательском устройстве (iOS и Android) из приложения для реагирования.

Сценарий: я пришлю письмо с подтверждением для пользователя после регистрации.

Ответ 1

Реагировать на собственную функцию открытой почты

<Button onPress={() => Linking.openURL('mailto:[email protected]') }
      title="[email protected]" />

Реагирует на собственную функцию Open Mail с темой и текстом

<Button onPress={() => Linking.openURL('mailto:[email protected]?subject=SendMail&body=Description') }
      title="[email protected]" />

Реагировать на собственный открытый URL

<Button onPress={() => Linking.openURL('https://www.google.co.in/') }
      title="www.google.co.in" />

Не забудьте импортировать

import { Linking } from 'react-native'

Ответ 2

К сожалению, ни один из ответов не является правильным.

Я не хочу составлять письмо. Я просто хочу иметь возможность запускать основное почтовое приложение

Я хотел бы иметь такое же поведение:

  1. Экран входа с помощью кнопки Open Email App
  2. Пользователь открывает свое почтовое приложение
  3. Он может нажать на волшебную ссылку, чтобы вернуться в приложение

Более или менее похож на Slack Onboarding с магической ссылкой.

enter image description here

Я нашел решение с помощью библиотеки response-native-email-link. Вы можете открыть почтовый клиент из React Native (для функции типа "волшебная ссылка").

  • Работает на Android.
  • Если вы хотите примерить iOS, вам нужно иметь реальное устройство, потому что в iOS Simulator нет mail.app.

Ответ 4

Чтобы открыть приложение электронной почты на iOS:

 Linking.canOpenURL('message:')
    .then(supported => {
        if (!supported) {
          console.log('Cant handle url')
        } else {
          return Linking.openURL('message:')
        }
      })
      .catch(err => {
        console.error('An error occurred', err)
      })

Ответ 5

Вы можете использовать этот метод, чтобы открыть любой почтовый клиент и отправить электронное письмо с некоторыми данными.

export const sendEmailViaEmailApp = (toMailId, subject, body) => {
  if (!isUndefined(toMailId)) {
    let link = 'mailto:${toMailId}';
  if (!isUndefined(subject)) {
    link = '${link}?subject=${subject}';
  }
 if (isUndefined(subject)) {
   link = '${link}?body=${body}';
 } else {
   link = '${link}&body=${body}';
 }

Linking.canOpenURL(link)
  .then(supported => {
    if (supported) {
      // 'mailto:[email protected]?subject=Billing Query&body=Description'
      Linking.openURL(link);
    }
  })
  .catch(err => console.error('An error occurred', err));
} else {
  console.log('sendEmailViaEmailApp -----> ', 'mail link is undefined');
 }
};

Поместите этот метод в класс utils и используйте этот метод там, где вам нужно

Ответ 6

Я думаю, что следующий модуль npm должен иметь то, что вы ищете. К сожалению, он использует собственные библиотеки, поэтому вам придется запускать некоторые ссылки, связанные с реакцией.

https://www.npmjs.com/package/react-native-mail

Ответ 7

<TouchableOpacity onPress={()=>{ 
  Linking.openURL('mailto:[email protected]?subject=mailsubject&body=mailbody');
                            }}>
    <View><Text>Contact Us</Text></View>
 </TouchableOpacity>

Эта работа для меня!

Ответ 9

Используйте ответную нативную почту для запуска почтового клиента. Он автоматически откроет почтовый клиент.https://www.npmjs.com/package/react-native-mail

Ответ 10

Как использовать ссылку, чтобы просто открыть приложение, не перенаправляя пользователя на вкладку "Написать вкладку электронной почты"?