我发现的是
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:"]];
Run Code Online (Sandbox Code Playgroud)
但我只是想打开Mail应用程序而不仅仅是作曲家视图.只是处于正常或最后状态的邮件应用程序.
有任何想法吗?
Vla*_*mir 81
显然,Mail应用程序支持第二个url方案 - message://如果它被应用程序提取,它(我想)允许打开特定的消息.如果您不提供消息URL,它将只打开邮件应用程序:
NSURL* mailURL = [NSURL URLWithString:@"message://"];
if ([[UIApplication sharedApplication] canOpenURL:mailURL]) {
[[UIApplication sharedApplication] openURL:mailURL];
}
Run Code Online (Sandbox Code Playgroud)
Ami*_*mit 47
NSString *recipients = @"mailto:first@example.com?cc=second@example.com,third@example.com&subject=Hello from California!";
NSString *body = @"&body=It is raining in sunny California!";
NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];
email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];
Run Code Online (Sandbox Code Playgroud)
Voj*_*vik 19
Swift原版Amit的回答:
斯威夫特2:
func openMailApp() {
let toEmail = "stavik@outlook.com"
let subject = "Test email".stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()
let body = "Just testing ...".stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()
if let
urlString = ("mailto:\(toEmail)?subject=\(subject)&body=\(body)")),
url = NSURL(string:urlString) {
UIApplication.sharedApplication().openURL(url)
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 3.0:
func openMailApp() {
let toEmail = "stavik@outlook.com"
let subject = "Test email".addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
let body = "Just testing ...".addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
if let
urlString = "mailto:\(toEmail)?subject=\(subject)&body=\(body)",
url = URL(string:urlString) {
UIApplication.shared().openURL(url)
}
}
Run Code Online (Sandbox Code Playgroud)
Bri*_*ggs 11
由于启动其他应用程序的唯一方法是使用其URL方案,因此打开邮件的唯一方法是使用mailto:scheme.不幸的是,对于您的情况,将始终打开撰写视图.
在真实设备上运行您的应用并致电
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"your@email.com"]];
Run Code Online (Sandbox Code Playgroud)
请注意,此行对模拟器不起作用.
如果您知道其URL方案,则可以在iOS上启动任何应用程序.不知道Mail app方案是公开的,但你可以偷偷摸摸地试试这个:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"message:message-id"]];
Run Code Online (Sandbox Code Playgroud)
向Farhad Noorzay道具,告诉我这个.这是Mail app API的一些逆向工程.更多信息:https://medium.com/@vijayssundaram/how-to-deep-link-to-ios-7-mail-6c212bc79bd9
扩展Amit的答案:这将启动邮件应用程序,并启动新电子邮件.只需编辑字符串即可更改新电子邮件的开始方式.
//put email info here:
NSString *toEmail=@"supp0rt.fl0ppyw0rm@gmail.com";
NSString *subject=@"The subject!";
NSString *body = @"It is raining in sunny California!";
//opens mail app with new email started
NSString *email = [NSString stringWithFormat:@"mailto:%@?subject=%@&body=%@", toEmail,subject,body];
email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52930 次 |
| 最近记录: |