webentwicklung-frage-antwort-db.com.de

Wie kann ich den E-Mail-Client React-native starten und öffnen?

Ich möchte keine E-Mail verfassen. Ich möchte nur in der Lage sein, die Haupt-E-Mail-App auf dem Gerät eines Benutzers (iOS und Android) von einer reaktiven App aus zu starten. 

Szenario: Ich werde dem Benutzer bei der Anmeldung eine Bestätigungs-E-Mail senden.

17
jasan

Native Open Mail-Funktion reagieren

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

Reagieren Sie die native Open Mail-Funktion mit Betreff und Text

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

Native Open-URL reagieren

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

Leider ist keine der obigen Antworten richtig .

Ich möchte keine E-Mail verfassen. Ich möchte nur die Haupt-E-Mail-App starten können

Ich hätte gerne das gleiche Verhalten:

  1. Anmeldebildschirm mit einem Knopf Open Email App
  2. Der Benutzer öffnet seine E-Mail-App
  3. Er kann auf den magischen Link klicken, um wieder in die App zu gelangen

Mehr oder weniger wie beim Slack Onboarding mit dem Magic Link.

enter image description here

Ich habe eine Lösung mit der Bibliothek gefunden Native-E-Mail-Link reagieren . Sie können einen E-Mail-Client über React Native (für Funktionen vom Typ 'Magic Link') öffnen.

  • Funktioniert auf Android.
  • Wenn Sie iOS ausprobieren möchten, benötigen Sie ein echtes Gerät, da es kein mail.app auf iOS Simulator.
10
David Leuliette

Zu diesem Zweck können Sie das Reactive Natives Linking-Modul verwenden. Hier ist ein Link zum Modul https://facebook.github.io/react-native/docs/linking.html .

Beispiel: Linking.openURL('mailto:[email protected]?subject=example&body=example')

4
tnyN

Ich denke, das folgende npm-Modul sollte das haben, wonach Sie suchen. Leider verwendet es native Bibliotheken, so dass Sie einige reaktive Links ausführen müssen.

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>

Diese Arbeit für mich.!

0
Jitender Badoni

Sie können diese Methode verwenden, um einen beliebigen E-Mail-Client zu öffnen und eine E-Mail mit einigen Daten zu senden.

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

Platzieren Sie diese Methode in einer utils-Klasse und verwenden Sie diese Methode, wo immer Sie möchten

0
Aakash Daga

E-Mail-App unter iOS öffnen :

 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