我正在使用Xamarin Forms应用,正在尝试将默认邮件客户端直接打开到收件箱。
我可以使用XF Essentials打开并传递数据以撰写邮件
Email.ComposeAsync(message);
但是我希望该应用程序在按下按钮时打开默认邮件应用程序的收件箱。 Xamarin形式有可能吗?
答案 0 :(得分:0)
我认为Dependency Service是您所需要的。 在您的Forms项目中创建一个界面:
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<IOpenManager>().openMail();