Xamarin.forms 如何在Xamarin表单中打开默认电子邮件应用程序收件箱

Xamarin.forms 如何在Xamarin表单中打开默认电子邮件应用程序收件箱,xamarin.forms,Xamarin.forms,我正在开发一个Xamarin表单应用程序,并试图将默认邮件客户端直接打开到收件箱 我能够使用XF Essentials打开并传递数据以撰写消息 Email.ComposeAsync(message); 但我希望该应用程序在按下按钮时打开默认邮件应用程序的收件箱。这在Xamarin形式中可能吗?我认为这是您需要的。 在窗体项目中创建接口: public interface IOpenManager { void openMail(); } 然后在每个平台上实施,对于iOS: [asse

我正在开发一个Xamarin表单应用程序,并试图将默认邮件客户端直接打开到收件箱

我能够使用XF Essentials打开并传递数据以撰写消息

Email.ComposeAsync(message);
但我希望该应用程序在按下按钮时打开默认邮件应用程序的收件箱。这在Xamarin形式中可能吗?

我认为这是您需要的。 在窗体项目中创建接口:

public interface IOpenManager
{
    void openMail();
}
然后在每个平台上实施,对于iOS:

[assembly: Dependency(typeof(OpenImplementation))]
namespace Demo.iOS
{
    public class OpenImplementation : IOpenManager
    {
        public void openMail()
        {
            NSUrl mailUrl = new NSUrl("message://");
            if (UIApplication.SharedApplication.CanOpenUrl(mailUrl))
            {
                UIApplication.SharedApplication.OpenUrl(mailUrl);
            }            
        }
    }
}
对于Android:

[assembly: Dependency(typeof(OpenImplementation))]
namespace Demo.Droid
{
    public class OpenImplementation : IOpenManager
    {
        public void openMail()
        {
            Intent intent = new Intent(Intent.ActionMain);
            intent.AddCategory(Intent.CategoryAppEmail);
            Android.App.Application.Context.StartActivity(intent);
        }
    }
}

最后,通过:
DependencyService.Get().openMail()调用此dependency

检查,您必须在android项目上实现它,然后通过使用它,非常感谢。今天早上上班时,我看到了两个答案。感谢您抽出时间回复。谢谢!!我努力寻找任何有用的东西,但这正是我所需要的。