J'essaie d'envoyer un e-mail depuis mon application. Mais ce que je veux, c'est que si l'utilisateur a une application Gmail sur son téléphone, alors le courrier devrait être envoyé en l'utilisant. Si l'application Gmail n'est pas disponible, l'utilisateur doit être redirigé vers Mailbox. Comment puis-je savoir si l'utilisateur contient l'application Gmail et comment puis-je rediriger l'utilisateur vers cette application.Ouvrir l'application Gmail depuis mon application
Répondre
Vous devez utiliser un schéma d'URL personnalisé. Pour l'application gmail son:
googlegmail://
Si vous voulez composer un message là, vous pouvez ajouter plus de paramètres à cette URL:
co?subject=Example&body=ExampleBody
Vous pouvez d'une durée déterminée si tout type d'application est installée en utilisant ce code (il suffit de remplacer customURL évidemment pour une autres applications):
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
}
Pouvez-vous définir un moyen de joindre une image? –
Cela fonctionne très bien, mais si je veux ajouter le paramètre de "To:" signifie comment puis-je ajouter l'email que je veux envoyer le courrier comme vous ajoutez l'objet et le corps? –
@YuvrajSinh vous pouvez l'ajouter comme suit: '" googlegmail: /// co? [email protected]&subject=Hello&body=Hi "' – silvansky
Setup pour iOS9 +
Comme expliqué here, si vous êtes sur iOS9 +, ne pas oublier d'ajouter à googlegmail
LSApplicationQueriesSchemes
sur votre info.plist
Code pour ouvrir GMail
Ensuite, vous pouvez faire la même chose comme la réponse acceptée (ci-dessous est ma version 2.3 rapide):
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)
}
}
}
Cela fonctionne! Merci beaucoup. –
iOS 11: cela fonctionne sans ajout de schéma à votre propre application. Aussi, vous pouvez ajouter l'argument 'to':' "googlegmail: /// co? To = [email protected]&subject=Hello&body=Hi" ' – silvansky
@silvansky, savez-vous comment passer le corps de plusieurs lignes? Je veux dire, y compris la nouvelle ligne? Donc, au lieu de "Salut" c'est "Salut!" puis "Bye" sur la nouvelle ligne. – user2908517
http://stackoverflow.com/a/19281934/2500457 aidera – iphondroid