2015-08-20 17 views
9

Sto provando a inviare un'email dalla mia app. Ma quello che voglio è se l'utente ha l'app Gmail sul suo telefono, quindi la posta dovrebbe essere inviata usando questo. Se l'app Gmail non è disponibile, l'utente deve essere reindirizzato a Mailbox.Apri l'app Gmail dalla mia app

Quindi, come posso sapere se l'utente contiene l'app Gmail e come posso reindirizzare l'utente ad esso.

+0

http://stackoverflow.com/a/19281934/2500457 aiuterà – iphondroid

risposta

10

È necessario utilizzare lo schema URL personalizzato. Per l'applicazione Gmail sua:

googlegmail:// 

Se si desidera comporre un messaggio non è possibile aggiungere più parametri a questo URL:

co?subject=Example&body=ExampleBody 

È possibile determinare se qualsiasi tipo di applicazione è installata utilizzando questo codice (basta sostituire CustomURL ovviamente per un altre applicazioni):

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 
} 
+0

Puoi definire un modo per allegare un'immagine? –

+0

Sta funzionando molto bene, ma cosa succede se voglio aggiungere il parametro di "A:" significa come posso aggiungere ID e-mail che voglio inviare mail come se aggiungessi soggetto e corpo? –

+2

@YuvrajSinh puoi aggiungerlo in questo modo: '" googlegmail: /// co? [email protected]&subject=Hello&body=Hi "' – silvansky

11

installazione per iOS9 +

Come spiegato here, se siete su iOS9 +, non dimenticare di aggiungere googlegmail per LSApplicationQueriesSchemes sul tuo info.plist

my info.plist

codice per aprire GMail

Poi, si può fare lo stesso come risposta accettata (di seguito è la mia versione 2.3 rapida):

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) 
     } 
    } 
} 
+0

Funziona! Grazie mille. –

+0

iOS 11: funziona senza aggiungere schema alla tua app. Inoltre puoi aggiungere l'argomento 'to':' "googlegmail: /// co? [email protected]&subject=Hello&body=Hi" ' – silvansky

+1

@silvansky, sai come passare il corpo di più linee? Voglio dire, inclusa la nuova linea? Quindi, invece di "Ciao", è "Ciao!" poi "Ciao" sulla nuova riga. – user2908517

Problemi correlati