2010-09-01 7 views
1

J'ai créé une application de voeux de musique dans l'iphone. Je veux que lorsqu'un utilisateur entre son numéro de téléphone mobile dans le champ de texte et clique sur le bouton d'envoi de données d'une autre vue doit être récupéré et envoyer un sms au numéro de téléphone mobile de l'utilisateur.comment envoyer des sms via un numéro de téléphone portable dans l'iphone

S'il vous plaît quelqu'un me aider à résoudre ce problème

Répondre

6

d'Apple ne supporte que l'envoi de sms à travers l'interface utilisateur qu'ils fournissent. Pour ce faire, vérifiez d'abord que vous pouvez envoyer un sms. Utilisez NSClassFromString pour détecter la présence de MFMessageComposeViewController dans le cas où vous déployez sur une ancienne version d'iOS qui ne le prend pas en charge et vérifiez que si MFMessageComposeViewController existe, canSendText renvoie true. Il serait faux si le retour de l'appareil utilisateur n'a pas la capacité de sms:

if ([[NSClassFromString(@"MFMessageComposeViewController") canSendText]) { 
    [self presentMessageComposeViewController]; 
    } 

Si l'appareil et le support OS maintenant présentent un MFMessageComposeViewController d'un contrôleur de vue dans votre application. Cette méthode doit être mise en œuvre dans une sous-classe de UIViewController qui gère l'affichage actuel:

-(void) presentMessageComposeViewController { 
    id smsViewController = [[NSClassFromString(@"MFMessageComposeViewController") alloc] init]; 
     [smsViewController setTitle:NSLocalizedString(@"Your Title",nil)]; 
    [smsViewController setBody:NSLocalizedString(@"Your Message. urls work too www.example.com",nil)]; 
    [smsViewController setMessageComposeDelegate: (id)self]; 
    [self presentModalViewController:smsViewController animated:YES]; 
    [smsViewController release]; 
} 

Vous devrez également mettre en œuvre la méthode déléguée de rejeter le MFMessageComposeViewController:

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

Si vous besoin d'utiliser votre propre interface utilisateur, vous allez devoir parler à votre propre serveur, ou un service tiers qui peut envoyer le sms pour vous. Par exemple, en utilisant l'API Twilio (et le projet ASIHTTPRequest):

NSString *urlString = [NSString stringWithFormat: 
@"http://api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages,kYourTwillioSID]; 
NSURL = [NSURL urlWithString:urlString]; 
SIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setPostValue:yourPhoneNumber forKey:@"TO"]; 
[request setPostValue:@yourBody forKey:@"Body"]; 
[request setFile:kYourOutgoingTwilioNumber forKey:@"From"]; 
+0

merci monsieur, je suis sur mon iphone déployez qui dispose d'une version 3.1.2 maximum. Est-ce que cela prend en charge l'envoi de fonctionnalités sms – Pradeep

+0

en regardant le MFessageComposeViewController.h Je vois que les méthodes pertinentes sont marquées __OSX_AVAILABLE_STARTING (__ MAC_NA, __ IPHONE_4_0) donc il semble que vous auriez besoin de 4.0 ou plus pour utiliser la solution intégrée. L'utilisation de twilio.com ou d'un autre service fonctionnerait avec n'importe quelle version –

Questions connexes