Откройте приложение Gmail из моего приложения
Я пытаюсь отправить письмо от моего приложения. Но я хочу, чтобы у пользователя было приложение Gmail на его / ее телефоне, тогда почта должна быть отправлена с его помощью. Если приложение Gmail недоступно, пользователь должен быть перенаправлен в почтовый ящик.
Итак, как я могу знать, содержит ли пользователь приложение Gmail и как я могу перенаправить пользователя на него.
2 ответов
вам нужно использовать пользовательскую схему URL. Для приложения gmail его:
googlegmail://
Если вы хотите составить сообщение, вы можете добавить дополнительные параметры к этому URL:
co?subject=Example&body=ExampleBody
вы можете определить, установлено ли какое-либо приложение с помощью этого кода (просто замените customURL, очевидно, для других приложений):
NSString *customURL = @"googlegmail://";
if ([[UIApplication sharedApplication]
canOpenURL:[NSURL URLWithString:customURL]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
}
else
{
//not installed, show popup for a user or an error
}
настройка для iOS9+
как пояснил здесь, если вы на iOS9+ не забудьте добавить googlegmail
to LSApplicationQueriesSchemes
на info.plist
код для открытия GMail
затем вы можете сделать то же самое, что и принятый ответ (ниже приведена моя версия swift 2.3):
let googleUrlString = "googlegmail:///co?subject=Hello&body=Hi"
if let googleUrl = NSURL(string: googleUrlString) {
// show alert to choose app
if UIApplication.sharedApplication().canOpenURL(googleUrl) {
if #available(iOS 10.0, *) {
UIApplication.sharedApplication().openURL(googleUrl, options: [:], completionHandler: nil)
} else {
UIApplication.sharedApplication().openURL(googleUrl)
}
}
}