Proqram vasitəsi ilə SMS-lə necə göndərilir?

Hər kəs mümkün olub-olmadığını bilirmi və rəsmi SDK / Cocoa Touch ilə iPhone dan programlı olaraq SMS göndərə bilərikmi?

497
14 авг. Marco tərəfindən təyin olunan 14 aug. 2008-08-14 12:51 '08 at 12:51 pm 2008-08-14 12:51
@ 1 cavab

məhdudiyyətlər

Bir proqramda bir proqrama SMS göndərə bilərsinizsə, arxa planda spam olan oyunları yaza bilərsiniz. Əminəm ki, dostlarınızın spam istifadəsini istəyirəm: "Bu yeni oyunu keçir!" Bu mənim boxxers roxxers və sizin də olacaq! Roxxersboxxers.com !!!! Əgər indi qeydiyyatdan keçsəniz, 3200 RB bal alacaqsınız! "

Apple avtomatlaşdırılmış (və ya qismən avtomatlaşdırılmış) SMS və yığım əməliyyatları üçün məhdudiyyətlərə malikdir. (Təsəvvür et ki, əvəzinə günün müəyyən bir vaxtında 911 adlanır)

Online avtomatlaşdırma tələb olunarsa, onlayn SMS göndərmə xidmətindən istifadə edən və bu marşrut üzrə SMS göndərməklə internetdə aralıq server qurmaq ən yaxşıdır. (yəni sizin iPhone proqramınız serverinizə bir UDP paketi göndərir, bu da real SMS mesajı göndərir)

IOS 4 yeniləmə

Bununla belə, iOS 4 indi tətbiqinizə idxal edə biləcək bir görünüş meneceri təqdim edir. SMS sahələrini doldurursunuz, sonra istifadəçi SMS-də nəzarətçiyə göndərə bilər. Bu url formatından fərqli olaraq "sms: ...", tətbiqinizin açıq qalmasına imkan verir və "To" və "Body" alanlarını doldurmağa imkan verir. Hətta birdən çox alıcı göstərə bilərsiniz.

Bu, istifadəçiləri açıq şəkildə bildirmədən tətbiqlərin avtomatik olaraq SMS göndərməsinə mane olur. Siz hələ də iPhone-dan tam avtomatlaşdırılmış SMS göndərə bilmirsinizsə, bunun üçün bəzi istifadəçi qarşılıqlı əlaqələri tələb olunur. Amma ən azı hər şeyi doldurmaq və ərizəni bağlamaqdan qaçınmaq imkanı verir.

MFMessageComposeViewController sinfi yaxşı sənədləşdirilmişdir və təlimlər tətbiq etmək nə qədər asan olduğunu göstərir.

IOS 5 yeniləmə

iOS 5 iPod touch və iPad cihazlar üçün mesajlaşma ehtiva edir, buna görə də özümü test etməmiş olsanız da, bütün iOS cihazlar MFMessageComposeViewController vasitəsilə SMS göndərə bilər. Əgər belədirsə, onda Apple bir mobil modem olmayan cihazların adına mesaj göndərən bir SMS serverlə işləyir.

IOS 6 yeniləmə

Bu sinifdə dəyişiklik yoxdur.

IOS 7 yeniləmə

İndi kullandığınız mesaj daşıyıcısı maddəni və ya əlavələri qəbul edəcək və hansı tətbiqləri qəbul edəcəyini yoxlaya bilərsiniz. Mövzu redaktə edə və ətraf mühitin imkan verdiyi mesaja əlavə əlavə edə bilərsiniz.

IOS 8 yeniləmə

Bu sinifdə dəyişiklik yoxdur.

IOS 9 yeniləmə

Bu sinifdə dəyişiklik yoxdur.

IOS 10 yeniləmə

Bu sinifdə dəyişiklik yoxdur.

IOS 11 yeniləmə

Bu sinifdə böyük dəyişiklik yoxdur.

Bu sinif üçün məhdudiyyətlər

Bunun iOS 4 olmadan telefonlarda işləməyəcəyini və iPod touch və ya iPad-də işləməyəcəyini nəzərə alsaq, bəlkə iOS 5-də istisna deyil. Bu nəzarətçi və ya riskdən istifadə etməzdən əvvəl ya cihazda və iOS-də məhdudiyyətlər müəyyən edilməlidir tətbiqini son günlərdə yenilənən 3G, 3GS və 4 iPhone üçün məhdudlaşdırır.

Bununla belə, SMS göndərən ara server, bu iOS cihazlarının bütün və bütününün internetə çıxışı olduqda SMS göndərməsinə imkan verir, belə ki, bir çox ərizə üçün ən yaxşı həlli ola bilər. Alternativ olaraq, hər iki variantdan istifadə edin və cihaz onu dəstəkləməsə, SMS onlayn xidmətinə qayıdın.

384
12 сент. Cavab 12 yanvarda Adam Davis tərəfindən verilir . 2008-09-12 18:00 '08, 18:00 'da, 2008-09-12 18:00' de

Burada tam olaraq nə etdiyiniz bir öğreticidir: MFMessageComposeViewController .

http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/

Əslində:

border=0
 MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; if([MFMessageComposeViewController canSendText]) { controller.body = @"SMS message here"; controller.recipients = [NSArray arrayWithObjects:@"1(234)567-8910", nil]; controller.messageComposeDelegate = self; [self presentModalViewController:controller animated:YES]; } 

Sənədlərə bir keçid.

https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller

136
24 июля '10 в 22:09 2010-07-24 22:09 Cavab, Daniel Amitay 24 iyul '10 'saat 10:09 ' da verildi. 2010-07-24 22:09
  • MessageUI.framework'i Xcode layihəsinə əlavə etməlisiniz.
  • #import <MessageUI/MessageUI.h> daxil edin
  • Bu nümayəndələri MFMessageComposeViewControllerDelegateUINavigationControllerDelegate başlıq fayllarına əlavə edin MFMessageComposeViewControllerDelegate
  • IBAction metodunuzda, MFMessageComposeViewController bir örneğini MFMessageComposeViewController deyirik
  • Cihazınız, if vəziyyətdə [MFMessageComposeViewController canSendText] istifadə edərək mətn göndərə biləcəyini yoxlamaq üçün, Yes / No
  • Əgər vəziyyətdə aşağıdakıları edin:

    • Birincisi, messageInstance üçün bədən messageInstance :

       messageInstance.body = @"Hello from Shah"; 
    • Sonra mesaj üçün alıcıları seçin:

       messageInstance.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321", nil]; 
    • Sifarişinizə bir nümayəndə olaraq mesaj göndərin:

       messageInstance.messageComposeDelegate = self; 
    • Sonuncu xəttdə aşağıdakıları edin:

       [self presentModalViewController:messageInstance animated:YES]; 
98
07 дек. Cavab Najeebullah Şah tərəfindən 07 Dekabr. 2011-12-07 19:50 '11 at 19:50 2011-12-07 19:50

SMS tətbiqini açmaq üçün sms:[target phone number] URL'sindən istifadə edə bilərsiniz, lakin mesajın cismini mətnlə doldurmaq üçün təlimat yoxdur ( bu yazı Apple icraçı forumlarında baxın).

48
12 сент. Cavab minenomi 12 sep verilir . 2008-09-12 17:41 '08 at 5:41 pm 2008-09-12 17:41

MacOS-da interprocess kommunikasiya sistemlərindən biri XPC-dir. Bu sistem qatı libSystem və startd istifadə plist strukturlarının köçürülməsi əsasında interprocess rabitə üçün nəzərdə tutulmuşdur. Əslində, bu, lüğətlər kimi strukturların mübadiləsi vasitəsilə prosesləri idarə etməyə imkan verən bir interfeysdir. Miras səbəbiylə, iOS 5 də bu mexanizmə sahibdir.

Yəqin ki, siz bu girişlə demək istədiyimi anladınız. Bəli, iOS-da XPC kommunikasiya vasitələrini əhatə edən sistem xidmətləri var. Və SMS-lə göndərmək üçün daemonla işi göstərmək istərdim. Buna baxmayaraq qeyd etmək lazımdır ki, bu qabiliyyət iOS 6-da müəyyənləşdirilir, lakin iOS 5.0-5.1.1 üçün müvafiqdir. Həbsxana müdaxiləsi, xüsusi çərçivələr və digər qanunsuz alətlər onun fəaliyyəti üçün tələb olunmur. / Usr / include / xpc / * qovluğundan yalnız bir başlıq faylları dəsti tələb olunur.

İOS-da SMS göndərmə elementlərindən biri, vəzifələrinə qısa mətn mesajları yaratmaq, idarə etmək və göndərmək daxil olan com.apple.chatkit sistem xidmətidir. İdarəetmə asanlığı üçün com.apple.chatkit.clientcomposeserver.xpc ictimai rabitə portu var. XPC alt sistemindən istifadə edərək, istifadəçi təsdiq etmədən mesajlar yarada və göndərə bilərsiniz.

Əlaqəni yaratmağa çalışın.

 xpc_connection_t myConnection; dispatch_queue_t queue = dispatch_queue_create("com.apple.chatkit.clientcomposeserver.xpc", DISPATCH_QUEUE_CONCURRENT); myConnection = xpc_connection_create_mach_service("com.apple.chatkit.clientcomposeserver.xpc", queue, XPC_CONNECTION_MACH_SERVICE_PRIVILEGED); 

İndi SMS göndərmə xidməti ilə bir XPC myConnection bağlantımız var. Bununla belə, XPC konfiqurasiyası dayandırılmış əlaqələrin yaradılmasını təmin edir - biz aktivləşdirmək üçün başqa addım atmalıyıq.

 xpc_connection_set_event_handler(myConnection, ^(xpc_object_t event){ xpc_type_t xtype = xpc_get_type(event); if(XPC_TYPE_ERROR == xtype) { NSLog(@"XPC sandbox connection error: %s\n", xpc_dictionary_get_string(event, XPC_ERROR_KEY_DESCRIPTION)); } // Always set an event handler. More on this later. NSLog(@"Received a message event!"); }); xpc_connection_resume(myConnection); 

Bağlantı aktivləşdirildi. Hal-hazırda iOS 6 telefonun bu cür əlaqəli olduğunu qadağan edən bir mesaj nümayiş etdirəcək. İndi xpc_dictionary-yə oxşar bir lüğət yaratmaq, mesajı göndərmək üçün lazım olan məlumatlarla.

 NSArray *recipient = [NSArray arrayWithObjects:@"+7 (90*) 000-00-00", nil]; NSData *ser_rec = [NSPropertyListSerialization dataWithPropertyList:recipient format:200 options:0 error:NULL]; xpc_object_t mydict = xpc_dictionary_create(0, 0, 0); xpc_dictionary_set_int64(mydict, "message-type", 0); xpc_dictionary_set_data(mydict, "recipients", [ser_rec bytes], [ser_rec length]); xpc_dictionary_set_string(mydict, "text", "hello from your application!"); 

Bir az qalır: XPC limanına bir mesaj göndərin və çatdırıldığından əmin olun.

 xpc_connection_send_message(myConnection, mydict); xpc_connection_send_barrier(myConnection, ^{ NSLog(@"The message has been successfully delivered"); }); 

Bütün bunlar. SMS göndərildi.

25
25 окт. Cavab isox 25 oct verilir . 2012-10-25 10:17 '12 at 10:17 2012-10-25 10:17

MessageUI.Framework əlavə edin və aşağıdakı kodu istifadə edin.

 #import <MessageUI/MessageUI.h> 

Və sonra:

 if ([MFMessageComposeViewController canSendText]) { MFMessageComposeViewController *messageComposer = [[MFMessageComposeViewController alloc] init]; NSString *message = @"Your Message here"; [messageComposer setBody:message]; messageComposer.messageComposeDelegate = self; [self presentViewController:messageComposer animated:YES completion:nil]; } 

və nümayəndə üsulu -

 - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { [self dismissViewControllerAnimated:YES completion:nil]; } 
21
11 мая '13 в 0:38 2013-05-11 00:38 11 May'ta Bharat Qulati'ye cavab verdi 0:38 2013-05-11 00:38

Bu yanaşmadan istifadə edə bilərsiniz:

 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms:MobileNumber"]] 


iOS avtomatik olaraq tətbiqinizdən mesajlaşma tətbiqinin mesaj yaradılması səhifəsinə keçir. URL sxemi sms ilə başlayan Çünki, bu, mesaj tətbiqi tərəfindən tanınan və başlayan bir növü kimi müəyyən edilir.

19
26 февр. Dinesh Reddy Chennuru tərəfindən 26 Fevralda cavab verildi 2014-02-26 10:13 '14 da 10:13 2014-02-26 10:13

Bu prosedurları izləyin.

Layihə üçün MessageUI.Framework 2019

12
29 июля '14 в 13:32 2014-07-29 13:32 Tunvir Rəhman Tuser tərəfindən cavab 29 iyul '14 'də 13:32 2014-07-29 13:32
 //Add the Framework in .h file #import <MessageUI/MessageUI.h> #import <MessageUI/MFMailComposeViewController.h> //Set the delegate methods UIViewController<UINavigationControllerDelegate,MFMessageComposeViewControllerDelegate> //add the below code in .m file - (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; if([MFMessageComposeViewController canSendText]) { NSString *str= @"Hello"; controller.body = str; controller.recipients = [NSArray arrayWithObjects: @"", nil]; controller.delegate = self; [self presentModalViewController:controller animated:YES]; } } - (void)messageComposeViewController: (MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { switch (result) { case MessageComposeResultCancelled: NSLog(@"Cancelled"); break; case MessageComposeResultFailed: NSLog(@"Failed"); break; case MessageComposeResultSent: break; default: break; } [self dismissModalViewControllerAnimated:YES]; } 
11
27 авг. Cavab Ruşəb 27 avqustda verilir. 2012-08-27 15:33 '12 saat 15:33 'da 2012-08-27 15:33

Burada iOS-da SMS göndərmək üçün Swift versiyası. Xahiş edirik unutmayın ki, yalnız real cihazlarda işləyir. Kod iOS 7+-də test edilmişdir. Burada oxuya bilərsiniz .

1) MFMessageComposeViewControllerDelegate və NSObject devralır ki, yeni bir sinif yaradın:

 import Foundation import MessageUI class MessageComposer: NSObject, MFMessageComposeViewControllerDelegate { // A wrapper function to indicate whether or not a text message can be sent from the user device func canSendText() -> Bool { return MFMessageComposeViewController.canSendText() } // Configures and returns a MFMessageComposeViewController instance func configuredMessageComposeViewController(textMessageRecipients:[String] ,textBody body:String) -> MFMessageComposeViewController { let messageComposeVC = MFMessageComposeViewController() messageComposeVC.messageComposeDelegate = self // Make sure to set this property to self, so that the controller can be dismissed! messageComposeVC.recipients = textMessageRecipients messageComposeVC.body = body return messageComposeVC } // MFMessageComposeViewControllerDelegate callback - dismisses the view controller when the user is finished with it func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) { controller.dismissViewControllerAnimated(true, completion: nil) } } 

2) Bu sinifi necə istifadə etmək olar?

 func openMessageComposerHelper(sender:AnyObject ,withIndexPath indexPath: NSIndexPath) { var recipients = [String]() //modify your recipients here if (messageComposer.canSendText()) { println("can send text") // Obtain a configured MFMessageComposeViewController let body = Utility.createInvitationMessageText() let messageComposeVC = messageComposer.configuredMessageComposeViewController(recipients, textBody: body) // Present the configured MFMessageComposeViewController instance // Note that the dismissal of the VC will be handled by the messageComposer instance, // since it implements the appropriate delegate call-back presentViewController(messageComposeVC, animated: true, completion: nil) } else { // Let the user know if his/her device isn't able to send text messages self.displayAlerViewWithTitle("Cannot Send Text Message", andMessage: "Your device is not able to send text messages.") } } 
5
23 мая '15 в 10:40 2015-05-23 10:40 23 May 'da 15:40' da verdiyi cavab cavabı 2015-05-23 10:40
 - (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients { UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; UIImage *ui =resultimg.image; pasteboard.image = ui; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]]; } 
3
09 сент. Cavab verilir 09 Sentyabr 2013-09-09 14:17 '13 at 2:17 pm 2013-09-09 14:17

// adı və nömrəsi ilə üsul çağırın.

 -(void)openMessageViewWithName:(NSString*)contactName withPhone:(NSString *)phone{ CTTelephonyNetworkInfo *networkInfo=[[CTTelephonyNetworkInfo alloc]init]; CTCarrier *carrier=networkInfo.subscriberCellularProvider; NSString *Countrycode = carrier.isoCountryCode; if ([Countrycode length]>0) //Check If Sim Inserted { [self sendSMS:msg recipientList:[NSMutableArray arrayWithObject:phone]]; } else { [AlertHelper showAlert:@"Message" withMessage:@"No sim card inserted"]; } 

}

// Mesajı göndərmək yolu

 - (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSMutableArray *)recipients{ MFMessageComposeViewController *controller1 = [[MFMessageComposeViewController alloc] init] ; controller1 = [[MFMessageComposeViewController alloc] init] ; if([MFMessageComposeViewController canSendText]) { controller1.body = bodyOfMessage; controller1.recipients = recipients; controller1.messageComposeDelegate = self; [self presentViewController:controller1 animated:YES completion:Nil]; } } 
3
10 марта '15 в 15:48 2015-03-10 15:48 Cavab ALOK KUMAR tərəfindən martın 10-da saat 15: 15-da verilir. 2015-03-10 15:48

İOS 4-də tətbiqinizdən bədən və alıcılarla mesaj göndərməyi dəstəkləyən bir sinif var. E-poçt göndərmək kimi işləyir. Sənədləri burada tapa bilərsiniz: link mətn

3
10 сент. Pankaj Kainthla tərəfindən verilmiş cavab 10 sentyabr 2010-09-10 11:32 '10 at 11:32 2010-09-10 11:32

İstəsəniz, CTMessageCenter sinifi adlanan xüsusi çərçivə CoreTelephony istifadə edə bilərsiniz. SMS göndərmək üçün bir neçə yol vardır.

2
29 янв. Cavab yeni bir ruh verildi Jan 29 2010-01-29 05:15 '10 'da 5:15' də 2010-01-29 05:15 'də
 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms:number"]] 

Bunu etmək ən yaxşı və ən qısa yol olacaq.

1
04 авг. Cavab Rinku Sadhwani 04 aug tərəfindən verilir . 2014-08-04 15:36 '14 saat 15:36 2014-08-04 15:36

Bunu istifadə edin:

 - (void)showSMSPicker { Class messageClass = (NSClassFromString(@"MFMessageComposeViewController")); if (messageClass != nil) { // Check whether the current device is configured for sending SMS messages if ([messageClass canSendText]) { [self displaySMSComposerSheet]; } } } - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { //feedbackMsg.hidden = NO; // Notifies users about errors associated with the interface switch (result) { case MessageComposeResultCancelled: { UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sending canceled!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert1 show]; [alert1 release]; } // feedbackMsg.text = @"Result: SMS sending canceled"; break; case MessageComposeResultSent: { UIAlertView *alert2 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sent!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert2 show]; [alert2 release]; } // feedbackMsg.text = @"Result: SMS sent"; break; case MessageComposeResultFailed: { UIAlertView *alert3 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS sending failed!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert3 show]; [alert3 release]; } // feedbackMsg.text = @"Result: SMS sending failed"; break; default: { UIAlertView *alert4 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"SMS not sent!!!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert4 show]; [alert4 release]; } // feedbackMsg.text = @"Result: SMS not sent"; break; } [self dismissModalViewControllerAnimated: YES]; } 
1
18 мая '12 в 8:47 2012-05-18 08:47 Cavab 18 may, 12 saat 8: 00-da verilir. 2012-05-18 08:47

SMS göndərə bilən bir MFMessageComposeViewController təqdim edə bilərsiniz, ancaq bir istifadəçi sorğusu (düymələri basmaq üçün bir düyməni). Bunu istifadəçi icazəsi olmadan etmək mümkün deyil. İOS 11-də, siz gələn bir mesaj filtrinə bənzəyir, spam haqqında iOS-yə məlumat verə bilərik. Daha çox SMS SMS ilə edilə bilməz.

1
26 нояб. Cavab Maxud Daudov tərəfindən verilir 26 noyabr. 2017-11-26 04:33 '17 'də 4:33' də 2017-11-26 04:33 'də

MFMessageComposeViewController- dən istifadə edərək , öz tətbiqinizdə bir mesaj yaradılması və göndərilməsini göstərmək istəsəniz lazımdır.

Əks halda, paylaşılanApplication metodundan istifadə edə bilərsiniz.

0
30 марта '15 в 9:31 2015-03-30 09:31 Cavab 30 mart, saat 15: 00 -da verilir , 2015-03-30 09:31

Bir çox cavablar, amma həqiqətən, avtomatik olaraq SmS-ə ehtiyacınız varsa və bəstəkarı istifadə etmirsinizsə, sadəcə twilio api deyə bilərsiniz.

Burada əsasən hər hansı bir proqramdan sms göndərmək üçün 50 + api ilə bir siyahı var.

-3
29 июня '15 в 1:13 2015-06-29 01:13 Cavab Stephane Paul 29 iyun 'da 1:13' də verilir. 2015-06-29 01:13

əlaqədar digər suallar və ya sual verin