Откройте приложение 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

my 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)
        }
    }
}