Je ne veux pas composer un email. Je souhaite simplement pouvoir lancer l'application de messagerie principale sur le périphérique d'un utilisateur (iOS & Android) à partir d'une application native
Scénario: j'enverrai un courrier électronique de vérification à l'utilisateur lors de l'inscription.
<Button onPress={() => Linking.openURL('mailto:[email protected]') }
title="[email protected]" />
<Button onPress={() => Linking.openURL('mailto:[email protected]?subject=SendMail&body=Description') }
title="[email protected]" />
<Button onPress={() => Linking.openURL('https://www.google.co.in/') }
title="www.google.co.in" />
Vous pouvez utiliser le module de liaison réact natives à cette fin. Voici un lien vers le module https://facebook.github.io/react-native/docs/linking.html .
Exemple: Linking.openURL('mailto:[email protected]?subject=example&body=example')
Je pense que le module npm suivant devrait avoir ce que vous cherchez. Malheureusement, il utilise des bibliothèques natives, vous devrez donc exécuter des liens natifs réactifs.
<TouchableOpacity onPress={()=>{
Linking.openURL('mailto:[email protected]?subject=mailsubject&body=mailbody');
}}>
<View><Text>Contact Us</Text></View>
</TouchableOpacity>
Ce travail pour moi!
Vous pouvez utiliser cette méthode pour ouvrir n'importe quel client de messagerie et envoyer un courrier électronique avec certaines données.
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');
}
};
Placez cette méthode dans une classe utils et utilisez-la où vous voulez
Pour ouvrir l'application de messagerie sur 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)
})