2010-12-06 37 views
1

Im en utilisant la commande openURL pour envoyer un SMS, mais il ouvre le safari, puis-je envoyer la commande de sorte qu'il s'ouvre en arrière-plan ??application ipad ouvre le navigateur en arrière-plan

-à-dire, l'utilisateur ne voient pas l'ouverture du navigateur ou le message qu'il donne, et reste dans l'application que vous

+0

Il n'y a rien comme une "application xcode". xcode est un IDE uniquement. – vikingosegundo

+0

Cela semble être un peu mal, si c'était possible. –

Répondre

5

,

NSURL *url = [NSURL URLWithString: @"https://smsgw.exetel.com.au/sendsms/api_sms.php?username=xxx&password=xx&mobilenumber=0xxx&message=xxr&sender=mk&messagetype=Text&referencenumber=04"]; 

[[UIApplication sharedApplication] openURL: url]; 

Merci Vous ne pouvez pas avoir Safari ouvrir une URL pour vous en arrière-plan. Mais en supposant que vous voulez juste demander l'URL et ignorer tout ce qui revient, vous pouvez essayer:

NSURL *url = [NSURL urlWithString:@"...whatever..."]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url delegate:nil]; 
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request]; 
[connection start]; 
2

Vous pouvez le faire être la création d'une UIWebView dans votre application, et d'appeler loadRequest: sur l'instance, comme ceci:

UIWebView *webView = [[UIWebView alloc] init]; 

webView.delegate = self; 

NSURL *url = [NSURL URLWithString: @"https://smsgw.exetel.com.au/sendsms/api_sms.php?username=xxx&password=xx&mobilenumber=0xxx&message=xxr&sender=mk&messagetype=Text&referencenumber=04"]; 
NSUrlRequest *request = [[NSUrlRequest alloc] initWithURL:url]; 
[webView loadRequest:request]; 

Cela va charger l'URL dans l'application, sans vous envoyer à Mobile Safari. L'avantage de cette méthode sur NSUrlConnection est que si vous vous conformez au protocole UIWebViewDelegate et implémentez webViewDidFinishLoad: dans votre classe de délégué, vous pouvez voir si l'appel a réussi ou non.

+0

Je suis tout à fait d'accord que si vous voulez attraper des erreurs, une vue web va briser les choses plus définitivement. Vous pouvez intercepter les diverses réponses de chargement d'un NSURLConnection (en fournissant un délégué réel à NSURLRequest), mais vous devez inspecter les codes de retour HTTP (par exemple, un 404 retournera généralement une page) et surveiller l'état de la connexion. Une vue Web est probablement plus lourde, mais il est extrêmement improbable qu'elle soit un problème. – Tommy

+0

+1 sur votre réponse; Ce sera probablement exactement ce dont il a besoin, sous une forme plus légère. –