2015-08-20 10 views
9

Ich versuche, eine E-Mail von meiner App zu senden. Aber was ich will ist, wenn Benutzer Google Mail-App auf seinem Telefon hat, dann sollte Mail mit ihm gesendet werden. Wenn die Google Mail-App nicht verfügbar ist, sollte der Benutzer zu Mailbox umgeleitet werden.Öffnen Sie Google Mail-App von meiner App

So wie kann ich wissen, ob Benutzer Gmail App enthält und wie kann ich Benutzer darauf umleiten.

+0

http://stackoverflow.com/a/19281934/2500457 hilft – iphondroid

Antwort

10

Sie müssen benutzerdefinierte URL-Schema verwenden. Für gmail Anwendung seiner:

googlegmail:// 

Wenn Sie eine Nachricht verfassen möchten, können Sie mehrere Parameter dieser URL hinzufügen:

co?subject=Example&body=ExampleBody 

Sie bestimmt, wenn jede Art von Anwendung installiert ist mit diesem Code (nur ersetzen CustomURL offensichtlich für eine andere Apps):

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

Können Sie eine Methode zum Anhängen von Bildern definieren? –

+0

Es funktioniert sehr gut, aber was ist, wenn ich den Parameter von "An:" hinzufügen möchte, wie kann ich E-Mail-ID hinzufügen, die ich E-Mail senden möchte, wie Sie Betreff und Körper hinzufügen? –

+2

@YuvrajSinh können Sie es wie folgt hinzufügen: '" googlegmail: /// co? [email protected]&subject=Hello&body=Hi "' – silvansky

11

-Setup für iOS9 +

Wie erklärt here, , wenn Sie auf iOS9 sind +, vergessen Sie nicht googlegmail zu LSApplicationQueriesSchemes auf info.plist

my info.plist

-Code hinzufügen GMail öffnen

Dann können Sie das gleiche tun als die angenommene antwort (unten ist meine schnelle 2.3 version):

+0

Es funktioniert! Ich danke dir sehr. –

+0

iOS 11: Es funktioniert ohne Hinzufügen von Schema zu Ihrer eigenen App. Sie können auch 'to' Argument hinzufügen:' "googlegmail: /// co? [email protected] & subject = Hallo & body = Hi" ' – silvansky

+1

@silvansky, wissen Sie, wie mehrere Zeilen Körper übergeben? Ich meine, einschließlich neuer Linie? Also, anstatt "Hallo" ist es "Hallo!" dann "Tschüss" auf der neuen Linie. – user2908517

Verwandte Themen