В моем приложении, если пользователь дал свою учетную запись gmail, мне нужно открыть почтовый клиент с учетными данными для входа в gmail, который появляется, когда мы выбираем gmail-вариант почты программным способом, но если эта учетная запись уже хранится в почте, тогда я необходимо перенаправить пользователя непосредственно на свою учетную запись. Может ли кто-нибудь плиз дать мне представление о том, как я могу достичь этого программно.
Открытый почтовый клиент iPhone программно
Ответ 1
Вы не получите такого большого контроля над приложением Mail, так как все приложения на iPhone изолированы, чтобы предотвратить их взаимодействие с приложениями Apple.
Единственное, что вы можете сделать (если вы хотите открыть почтовый клиент для отправки электронной почты), это примерно так:
/* create mail subject */
NSString *subject = [NSString stringWithFormat:@"Subject"];
/* define email address */
NSString *mail = [NSString stringWithFormat:@"[email protected]"];
/* define allowed character set */
NSCharacterSet *set = [NSCharacterSet URLHostAllowedCharacterSet];
/* create the URL */
NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"mailto:?to=%@&subject=%@",
[mail stringByAddingPercentEncodingWithAllowedCharacters:set],
[subject stringByAddingPercentEncodingWithAllowedCharacters:set]]];
/* load the URL */
[[UIApplication sharedApplication] openURL:url];
/* release the URL. If you are using ARC, remove this line. */
[url release];
Ответ 2
Swift:
if let url = NSURL(string: "mailto://\(email)") {
UIApplication.sharedApplication().openURL(url)
}
Ответ 3
Быстрая версия ответа Леона Роденбурга:
// define email address
let address = "[email protected]"
// create mail subject
let subject = "Subject"
// create the URL
let url = NSURL(string: "mailto:?to=\(address)&subject=\(subject)".stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!)
// load the URL
UIApplication.sharedApplication().openURL(url!)
Ответ 4
Я бы предложил гораздо более улучшенный ответ. Мобильное приложение Slack.com делает это, оно обнаруживает общие почтовые клиенты, перечисленные на устройстве, и показывает всплывающее меню для "какого" почтового клиента, который вы хотели бы открыть.
Итак, чтобы реализовать:
-
Google, чтобы найти 10 лучших почтовых клиентов (например, Mail, Google Inbox, OutLook, AirMail и т.д.).
-
Получите список установленных приложений на телефоне, либо выполнив поиск во всех приложениях (но мне сказали, что теперь вы можете найти только, если приложение явно установлено, поэтому вам нужно будет обнаружить приложение).
-
Показывать список всплывающих окон, если обнаружено более одного приложения электронной почты, запрашивая их "какое" приложение открыть, например. Почта, Входящие.
Это лучшее решение, которое я видел на сегодняшний день.