How to open mail app inbox directly in react native?

628 Views Asked by At

Using Linking.openURL('mailto:') with expo-linking opens the mail app with a 'compose mail' screen, how can i open the mail app directly on the inbox tab ?

1

There are 1 best solutions below

0
On

Inspired by this stack overflow post, you can use the message:// url scheme to achieve this on iOS. If no content is provided, it defaults to the email inbox on iOS.

For android, things are a little trickier. You'll need expo-intent-launcher and a few extra params to complete the hand-off. A complete solution may look something like this:

    import { startActivityAsync, ActivityAction } from 'expo-intent-launcher';

    [...]
    
    if (Platform.OS === "android") {
      const activityAction = "android.intent.action.MAIN";
      const intentParams: IntentLauncher.IntentLauncherParams = {
        category: "android.intent.category.APP_EMAIL",
      };
      IntentLauncher.startActivityAsync(activityAction, intentParams);
    } 
    else if (Platform.OS === "ios") {
      Linking.openURL('message://');
    } 

Be sure to test on real devices if possible since the iPhone simulator doesn't have a mail client installed.

List of URL schemes on wikipedia

Update: If you don't mind an extra dependency, take a look at react-native-email-link which has the added benefit of allowing users to select from any installed email client. Neat!