web-dev-qa-db-fra.com

Comment lancer et ouvrir le client de messagerie React-native?

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.

17
jasan

Réaction de la fonction de messagerie ouverte native

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

Réaction de la fonction Open Mail Native avec sujet et corps

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

Réaction de l'URL ouverte native

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

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')

4
tnyN

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.

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

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

Ce travail pour moi!

0
Jitender Badoni

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

0
Aakash Daga

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)
      })
0
Daniel