Как запустить и открыть почтовый клиент 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
К сожалению, ни один из ответов не является правильным.
Я не хочу составлять письмо. Я просто хочу иметь возможность запускать основное почтовое приложение
Я хотел бы иметь такое же поведение:
- Экран входа с помощью кнопки
Open Email App
- Пользователь открывает свое почтовое приложение
- Он может нажать на волшебную ссылку, чтобы вернуться в приложение
Более или менее похож на Slack Onboarding с магической ссылкой.
![enter image description here]()
Я нашел решение с помощью библиотеки response-native-email-link.
Вы можете открыть почтовый клиент из React Native (для функции типа "волшебная ссылка").
- Работает на Android.
- Если вы хотите примерить iOS, вам нужно иметь реальное устройство, потому что в iOS Simulator нет
mail.app
.
Ответ 3
Для этой цели вы можете использовать модуль Linking ofatives. Вот ссылка на модуль https://facebook.github.io/react-native/docs/linking.html.
Пример: Linking.openURL('mailto:[email protected]?subject=example&body=example')
Ответ 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>
Эта работа для меня!
Ответ 8
Лучшее решение, которое я нашел, использует expo.
если вы не используете expo, тогда вы должны использовать это для улучшения функций и API
если вы используете интерактивную версию с помощью expo, используйте Expo MailComposer
https://docs.expo.io/versions/latest/sdk/mail-composer
Ответ 9
Используйте ответную нативную почту для запуска почтового клиента. Он автоматически откроет почтовый клиент.https://www.npmjs.com/package/react-native-mail
Ответ 10
Как использовать ссылку, чтобы просто открыть приложение, не перенаправляя пользователя на вкладку "Написать вкладку электронной почты"?