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.
<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" />
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:
Open Email App
Mehr oder weniger wie beim Slack Onboarding mit dem Magic Link.
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.
mail.app
auf iOS Simulator.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')
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.
<TouchableOpacity onPress={()=>{
Linking.openURL('mailto:[email protected]?subject=mailsubject&body=mailbody');
}}>
<View><Text>Contact Us</Text></View>
</TouchableOpacity>
Diese Arbeit für mich.!
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
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)
})