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) über eine reaktionsnative App zu starten.
Szenario: Ich werde dem Benutzer bei der Anmeldung eine Bestätigungs-E-Mail senden.
mail client picker
Android-Gerät öffnen und nicht nur etwas Ähnliches für iOS benötigen.Antworten:
Reagieren Sie auf die native Open Mail-Funktion
<Button onPress={() => Linking.openURL('mailto:[email protected]') } title="[email protected]" />
Reagieren Sie auf die native Open Mail-Funktion mit Betreff und Text
<Button onPress={() => Linking.openURL('mailto:[email protected]?subject=SendMail&body=Description') } title="[email protected]" />
Native native URL reagieren
<Button onPress={() => Linking.openURL('https://www.google.co.in/') } title="www.google.co.in" />
## Vergiss nicht zu importieren
import { Linking } from 'react-native'
quelle
openURL('mailto:...')
öffnet eine E-Mail zum Verfassen, nicht den E-Mail-Client, was Jasan ausdrücklich sagt, dass er nicht will.Leider ist keine der Antworten richtig .
Ich möchte das gleiche Verhalten haben:
Open Email App
Mehr oder weniger das gleiche wie das Slack Onboarding mit dem magischen Link.
Ich habe eine Lösung mit dem React-Native-Email-Link der Bibliothek gefunden . Sie können einen E-Mail-Client über React Native öffnen (für die Funktion "Magischer Link").
mail.app
unter iOS Simulator kein Gerät gibt .quelle
Zu diesem Zweck können Sie das Link-Modul "React Natives" 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')
quelle
So öffnen Sie die E-Mail-App unter iOS :
quelle
Mit dieser Methode können Sie jeden E-Mail-Client öffnen und eine E-Mail mit einigen Daten senden.
Platzieren Sie diese Methode in einer utils-Klasse und verwenden Sie diese Methode, wo immer Sie möchten
quelle
quelle
Ich denke, das folgende npm-Modul sollte das haben, wonach Sie suchen. Leider werden native Bibliotheken verwendet, sodass Sie einige reaktionsnative Links ausführen müssen.
https://www.npmjs.com/package/react-native-mail
quelle
<TouchableOpacity onPress={()=>{ Linking.openURL('mailto:[email protected]?subject=mailsubject&body=mailbody'); }}> <View><Text>Contact Us</Text></View> </TouchableOpacity>
Diese Arbeit für mich.!
quelle
Verwenden Sie React-Native-Mail, um den E-Mail-Client zu starten. Der E-Mail-Client wird automatisch geöffnet. https://www.npmjs.com/package/react-native-mail
quelle
Expo.io reine js / Typoskript-Lösung:
import * as IntentLauncher from 'expo-intent-launcher'; // ... public openMailClientIOS() { Linking.canOpenURL('message:0') .then(supported => { if (!supported) { console.log('Cant handle url') } else { return Linking.openURL('message:0') .catch(this.handleOpenMailClientErrors) } }) .catch(this.handleOpenMailClientErrors) } public openMailClientAndroid() { const activityAction = 'android.intent.action.MAIN'; // Intent.ACTION_MAIN const intentParams: IntentLauncher.IntentLauncherParams = { flags: 268435456, // Intent.FLAG_ACTIVITY_NEW_TASK category: 'android.intent.category.APP_EMAIL' // Intent.CATEGORY_APP_EMAIL }; IntentLauncher.startActivityAsync(activityAction, intentParams) .catch(this.handleOpenMailClientErrors); }
Funktioniert in iOS mit Mail, funktioniert in Android
Android Intent-Dokumente: https://developer.android.com/reference/android/content/Intent#ACTION_MAIN
Expo IntentLauncher doc: https://docs.expo.io/versions/latest/sdk/intent-launcher/
quelle
Für die Open Mail App habe ich so verwendet und es funktioniert für mich
quelle
Wenn Sie einen Wrapper möchten, der mit Android und iOS funktioniert. https://www.npmjs.com/package/react-native-email-action
iOS funktioniert mit anderen E-Mail-Apps.
quelle