我正在尝试从Metro应用程序发送电子邮件(js或c#,无所谓)共享合同是否可行?据我所知,您不能通过股份合约指定电子邮件的收件人。
答案 0 :(得分:2)
这是对的。共享合同也可用于其他应用程序,即Tweetro,它们不使用电子邮件地址,因此用户必须每手键入一个电子邮件地址。 mailto Uri不起作用,它必须是有效的Uri,否则将不会显示。有关您可以设置为通过超级按钮共享的所有选项,请参阅http://msdn.microsoft.com/en-US/library/windows/apps/hh465261。
答案 1 :(得分:1)
你是对的。没有办法。您可以尝试构建一个mailto到Uri并启动它
答案 2 :(得分:1)
如果你在Windows 10上使用EmailManager.ShowComposeNewEmailAsync API。它使用下面的mailto:协议。
答案 3 :(得分:0)
您可以使用Uri方案打开应用,但您需要使用LaunchUriAsync。此外,如果设置了LauncherOptions,如果用户没有安装该应用程序,Windows将把它们带到商店。
例如,这是我的方法,只打开屏幕旁边的邮件应用程序(我将其用于错误报告),或者如果他们安装了Outlook,它将使用它:
private async Task<bool> ReportErrorMessage(string detailedErrorMessage)
{
var uri = new Uri(string.Format("mailto:email.address@domain.com?subject=Error Report&body={0}", detailedErrorMessage), UriKind.Absolute);
var options = new Windows.System.LauncherOptions
{
DisplayApplicationPicker = true,
DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseLess,
PreferredApplicationPackageFamilyName = "microsoft.windowscommunicationsapps_8wekyb3d8bbwe",
PreferredApplicationDisplayName = "Mail"
};
return await Windows.System.Launcher.LaunchUriAsync(uri, options);
}
对于电子邮件uri,应用程序已经安装,因此它应该对每个用户都同样有效。此外,如果您知道FamilyPackageName,则可以设置要使用的首选应用程序。