Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to open default email app inbox in flutter?

Tags:

flutter

I want to open the default e-mail app Inbox screen using flutter. We can use url launcher to open the email compose screen with mailto: url. But that opens the compose screen. What I want is to open the inbox screen. I can't find proper documentation for this.

like image 247
Telvin Mathew Avatar asked Apr 16 '19 05:04

Telvin Mathew


People also ask

How do I open my default email in Flutter?

How To Open Default Email App with Flutter. Open the default email client app with Flutter. Use the URL Launcher to launch an email within the default email app on your phone.

How do I send mail without opening the default email app on Flutter?

Yes, you can directly Send email from your app via SMTP using mailer plugin. You will need to ask and store user's Email, Password, SMTP port, and host and use these credentials to send emails.

How do I create a email app in Flutter?

You need to create a Flutter screen that contains text fields of the email. This includes a list of recipients, email subject, and email contents, along with the option to add attachments. At the end, add a button to send an email. This code contains the sample emails.


1 Answers

I found the answer using flutter_appavailability library. For those who are searching for the answer please see the steps below.

  1. Add dependency | flutter_appavailability: "^0.0.21" | in pubspec.yaml (Please check the latest version in GitHub)

  2. Add below lines in Xcode Podfile which is required for building the library in iOS

    target 'Runner' do
      use_frameworks!  # required by simple_permission
      ...
    end
    
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['SWIFT_VERSION'] = '4.0'  # required by simple_permission
          config.build_settings['ENABLE_BITCODE'] = 'NO'
        end
      end
    end
  1. Import below packages

    import 'dart:io'; import 'package:flutter_appavailability/flutter_appavailability.dart';

  2. Use below method

     void openEmailApp(BuildContext context){
         try{
             AppAvailability.launchApp(Platform.isIOS ? "message://" : "com.google.android.gm").then((_) {
                     print("App Email launched!");
                   }).catchError((err) {
                     Scaffold.of(context).showSnackBar(SnackBar(
                         content: Text("App Email not found!")
                     ));
                     print(err);
                   });
         } catch(e) {
           Scaffold.of(context).showSnackBar(SnackBar(content: Text("Email App not found!")));
         }
     }
    
like image 147
Telvin Mathew Avatar answered Sep 24 '22 14:09

Telvin Mathew