प्रोग्राम को iPhone पर एसएमएस कैसे भेजें?


526

क्या कोई जानता है कि क्या यह संभव है, और कैसे, कैसे प्रोग्रामिक रूप से , आधिकारिक एसडीके / कोको टच के साथ एसएमएस भेजने के लिए iPhone?


Ios 4 में आप कोड के साथ sms भेज सकते हैं, लेकिन समस्या यह है कि आपका आवेदन बंद हो जाएगा
पंकज Kainthla

यदि आधिकारिक एसडीके का उपयोग करना दूसरों के लिए आवश्यकता नहीं है, तो मैंने इस पोस्ट को यह दिखाने के लिए लिखा कि ट्विलियो
मेगन स्पायर

आप अपने gmail से एक Google स्प्रेडशीट बना सकते हैं, अपने इच्छित फ़ील्ड बना सकते हैं, फिर एक फ़ोन नंबर पर ईमेल भेजने के लिए tools->script editorएक POST अनुरोध में do और का उपयोग करें MailApp.sendEmail। Att's is yourNUMBER@mms.att.net, tmobile's तुम्हारा हैNNn@tmomail.net मुझे लगता है (सभी मुफ़्त)
कोटी

जवाबों:


404

प्रतिबंध

यदि आप iPhone पर एक कार्यक्रम के भीतर एक एसएमएस भेज सकते हैं, तो आप पृष्ठभूमि में लोगों को स्पैम वाले गेम लिखने में सक्षम होंगे। मुझे यकीन है कि आप वास्तव में अपने दोस्तों से स्पैम लेना चाहते हैं, "इस नए गेम को आज़माएं! यह मेरे मुक्केबाज़ों को रोक्स करता है, और आपका भी होगा! Roxxersboxxers.com !!!! अगर आप साइन अप करते हैं तो आपको 3,200 आरबी मिलेंगे! अंक !! "

ऐप्पल के पास स्वचालित (या आंशिक रूप से स्वचालित) एसएमएस और डायलिंग संचालन के लिए प्रतिबंध हैं। (कल्पना करें कि खेल दिन के किसी विशेष समय में 911 डायल करने के बजाय)

आपकी सबसे अच्छी शर्त इंटरनेट पर एक इंटरमीडिएट सर्वर स्थापित करना है जो ऑनलाइन एसएमएस भेजने की सेवा का उपयोग करता है और यदि आपको स्वचालित स्वचालन की आवश्यकता है तो उस मार्ग से एसएमएस भेजें। (यानी, iPhone पर आपका प्रोग्राम आपके सर्वर पर एक यूडीपी पैकेट भेजता है, जो असली एसएमएस भेजता है)

iOS 4 अपडेट

iOS 4, हालांकि, अब viewControllerआप अपने आवेदन में आयात कर सकते हैं प्रदान करता है । आप एसएमएस फ़ील्ड्स को प्रीपॉइलेट करते हैं, फिर उपयोगकर्ता नियंत्रक के भीतर एसएमएस भेजने की पहल कर सकता है। "एसएमएस: ..." का उपयोग कर के विपरीत url स्वरूप, यह आपके आवेदन खुला रहने की अनुमति देता है, और आप दोनों को भरने के लिए अनुमति देता है के लिए और शरीर के खेतों। आप कई प्राप्तकर्ताओं को भी निर्दिष्ट कर सकते हैं।

यह स्पष्ट रूप से उपयोगकर्ता के बिना स्वचालित एसएमएस भेजने से अनुप्रयोगों को रोकता है। आप अभी भी iPhone से पूरी तरह से स्वचालित एसएमएस नहीं भेज सकते हैं, इसके लिए कुछ उपयोगकर्ता सहभागिता की आवश्यकता होती है। लेकिन यह कम से कम आपको सब कुछ आबाद करने की अनुमति देता है, और एप्लिकेशन को बंद करने से बचा जाता है।

MFMessageComposeViewController वर्ग अच्छी तरह से प्रलेखित है, और ट्यूटोरियल बताएंगे कि कैसे आसान इसे लागू करने के लिए है।

iOS 5 अपडेट

आईओएस 5 में आईपॉड टच और आईपैड डिवाइसेज के लिए मैसेजिंग शामिल है, इसलिए मैंने अभी तक इसे खुद टेस्ट नहीं किया है, ऐसा हो सकता है कि सभी आईओएस डिवाइस एमएफएमेजेजकंपोज व्यूक्रॉन्ट्रोलर के जरिए एसएमएस भेज सकेंगे। यदि यह मामला है, तो Apple एक एसएमएस सर्वर चला रहा है जो उन उपकरणों की ओर से संदेश भेजता है जिनके पास सेलुलर मॉडेम नहीं है।

iOS 6 अपडेट

इस वर्ग में कोई बदलाव नहीं।

iOS 7 अपडेट

अब आप यह देख सकते हैं कि आप जिस संदेश माध्यम का उपयोग कर रहे हैं, वह किसी विषय या अनुलग्नकों को स्वीकार करेगा या यह किस प्रकार के अनुलग्नकों को स्वीकार करेगा। आप विषय को संपादित कर सकते हैं और संदेश में अनुलग्नक जोड़ सकते हैं, जहां माध्यम इसे अनुमति देता है।

iOS 8 अपडेट

इस वर्ग में कोई बदलाव नहीं।

iOS 9 अपडेट

इस वर्ग में कोई बदलाव नहीं।

iOS 10 अपडेट

इस वर्ग में कोई बदलाव नहीं।

iOS 11 अपडेट

इस वर्ग में कोई महत्वपूर्ण परिवर्तन नहीं हुआ

इस वर्ग की सीमाएँ

ध्यान रखें कि यह आईओएस 4 के बिना फोन पर काम नहीं करेगा, और यह आईओएस 5 के अलावा, आईपॉड टच या आईपैड पर काम नहीं करेगा। शायद, आईओएस 5 के तहत आपको इसका उपयोग करने से पहले डिवाइस और आईओएस सीमाओं का पता लगाना चाहिए। नियंत्रक, या जोखिम ने आपके ऐप को हाल ही में अपग्रेड किए गए 3G, 3GS और 4 iPhones में प्रतिबंधित कर दिया है।

हालाँकि, एसएमएस भेजने वाला एक मध्यवर्ती सर्वर किसी भी और इन सभी iOS उपकरणों को तब तक एसएमएस भेजने की अनुमति देगा, जब तक उनके पास इंटरनेट का उपयोग है, इसलिए यह अभी भी कई अनुप्रयोगों के लिए एक बेहतर समाधान हो सकता है। वैकल्पिक रूप से, दोनों का उपयोग करें, और केवल एक ऑनलाइन एसएमएस सेवा में वापस आ जाएं जब डिवाइस इसका समर्थन नहीं करता है।


12
और यदि आप उस डोमेन को खरीदते हैं तो मैं आपको फिर से उसी तरह नहीं देख पाऊंगा।
एडम डेविस

79
मुझे लगता है कि यह विडंबना है कि किसी ने इस पोस्ट को स्पैम के रूप में चिह्नित किया। लाइनों, लोगों के बीच पढ़ें!
Randolpho

2
-1 क्योंकि यह अटकल के रूप में पढ़ता है। इसके अलावा, जूस 'वोंड्रिन' देखें और इन-ऐप एसएमएस भेजने के तरीके पर राइडगेज़ के जवाब देखें।
फ्रैंक शियरर

8
@Frank - नए iOS 4 सुविधाओं को प्रतिबिंबित करने के लिए मेरा राइटअप अपडेट किया गया। इच्छा-क्षय शब्द निकालना।
एडम डेविस

13
मैं वास्तव में सराहना करता हूं कि आप इस पोस्ट को नए iOS संस्करणों के लिए अपडेट रखें। :)
Ciryon

143

: यहाँ एक ट्यूटोरियल जो वास्तव में क्या आप देख रहे हैं करता है MFMessageComposeViewController

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

अनिवार्य रूप से:

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];
}

और डॉक्स का लिंक।

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


फिर भी, एसएमएस फॉर्म को पॉप अप करना होगा। पृष्ठभूमि में भेजने का कोई तरीका?
रैप्टर

5
आप निश्चित रूप से Twilio जैसी सेवा का उपयोग करके पृष्ठभूमि में एसएमएस भेज सकते हैं, लेकिन यदि आप उपयोगकर्ता के फ़ोन नंबर से इसे भेजना चाहते हैं, तो उन्हें उपरोक्त विधि के माध्यम से संदेश को अनुमोदित करना होगा।
डैनियल अमिताय

3
उपरोक्त कोड का उपयोग करने वाला कोई भी व्यक्ति चाहे MFMessageComposeViewController *controller = ...तो ब्लॉक को अंदर कर सकता है। (वर्ग विधि को परीक्षण करने के लिए एक उदाहरण की आवश्यकता नहीं है)
अनिर्धारित सिंक्रनाइज़ेशन

लिंक http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/मेरे लैपटॉप पर "502 बैड गेटवे" कहता है। हो सकता है कि लिंक टूट गया हो।
निकिता व्लासेंको

99
  1. आपको अपने Xcode प्रोजेक्ट में MessageUI.framework जोड़ना होगा
  2. #import <MessageUI/MessageUI.h>अपनी हेडर फ़ाइल में एक शामिल करें
  3. इन शीर्षकों को अपनी हेडर फ़ाइल में जोड़ें MFMessageComposeViewControllerDelegate औरUINavigationControllerDelegate
  4. अपनी IBActionपद्धति में MFMessageComposeViewControllerकहने का उदाहरण घोषित करेंmessageInstance
  5. यह जाँचने के लिए कि क्या आपका उपकरण [MFMessageComposeViewController canSendText]किसी दशा में पाठ उपयोग भेज सकता है , यह हाँ / नहीं लौटाएगा
  6. में ifहालत ये कार्य करें:

    1. आपके लिए पहला सेट बॉडी messageInstance:

      messageInstance.body = @"Hello from Shah";
    2. फिर संदेश के लिए प्राप्तकर्ताओं को इस तरह तय करें:

      messageInstance.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321",         nil];
    3. अपने संदेश में एक प्रतिनिधि सेट करें:

      messageInstance.messageComposeDelegate = self;
    4. अंतिम पंक्ति में यह करें:

      [self presentModalViewController:messageInstance animated:YES];

2
संस्करण नोट: presentModalViewController:animated:पदावनत है; presentViewController:animated:completion:इसके बजाय उपयोग करें । इसके अलावा, - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)resultयदि आप परिणाम जानना चाहते हैं तो प्रतिनिधि पद्धति को परिभाषित करना याद रखें ।
रैप्टर

कृपया परीक्षण के लिए कोड डालें। @ नजीबुल्लाह शाह यहाँ या गितुब में।

50

sms:[target phone number]एसएमएस एप्लिकेशन को खोलने के लिए आप एक यूआरएल का उपयोग कर सकते हैं , लेकिन पाठ के साथ एसएमएस बॉडी को कैसे प्रीफ़िल करना है, इस पर कोई संकेत नहीं हैं।


प्रतिक्रिया-मूल-संचार, एसएमएस खोलने के दौरान टेक्स्ट को प्रीफ़िल करने के लिए & बॉडी = पैरामीटर का उपयोग करता है: iOS के लिए targetphonenumber & body = textyouwanttoprefillwith
डग वॉस

मैं सिर्फ अपने iPhone 8 पर यह कोशिश की, और यह बहुत अच्छा काम किया ... धन्यवाद!
ब्रैड पार्क्स

मुझे एक विशिष्ट संख्या पर एक एसएमएस भेजने की जरूरत है लेकिन पूर्वनिर्धारित (प्रीफिल) बॉडी टेक्स्ट के साथ। थोस बॉडी टेक्स्ट 4 संभावित विकल्पों में से मैन्युअल चयन होना चाहिए। जैसे ऐप खोलता है और पॉप-अप "चुनिंदा कारण"। फिर 4 विकल्प उपलब्ध हैं। इसके बाद उपयोगकर्ता इन 4 विकल्पों में से एक का चयन करता है और फिर एक स्वचालित एसएमएस भेजा जाता है, जिसमें उपयोगकर्ता की पसंद का टेक्स्ट होता है। कोई टिप?
सेरालोक

25

MacOS में अंतर-प्रक्रिया संचार की प्रणालियों में से एक XPC है। इस प्रणाली परत को लिबास सिस्टम और लॉन्च का उपयोग करते हुए प्लिस्ट संरचनाओं के हस्तांतरण के आधार पर अंतर-प्रक्रिया संचार के लिए विकसित किया गया है। वास्तव में, यह एक इंटरफ़ेस है जो शब्दकोशों के रूप में ऐसी संरचनाओं के आदान-प्रदान के माध्यम से प्रक्रियाओं को प्रबंधित करने की अनुमति देता है। आनुवंशिकता के कारण, iOS 5 के पास यह तंत्र भी है।

आप पहले ही समझ सकते हैं कि इस परिचय से मेरा क्या अभिप्राय है। हां, iOS में सिस्टम सेवाएं हैं जिनमें XPC संचार के लिए उपकरण शामिल हैं। और मैं एसएमएस भेजने के लिए डेमॉन के साथ काम को मिसाल देना चाहता हूं। हालांकि, यह उल्लेख किया जाना चाहिए कि यह क्षमता iOS 6 में तय की गई है, लेकिन iOS 5.0-5.1.1 के लिए प्रासंगिक है। इसके दोहन के लिए जेलब्रेक, प्राइवेट फ्रेमवर्क और अन्य अवैध उपकरणों की आवश्यकता नहीं होती है। केवल डायरेक्टरी / usr / शामिल / xpc / * से हेडर फाइलों के सेट की जरूरत है।

IOS में एसएमएस भेजने के लिए तत्वों में से एक सिस्टम सेवा com.apple.chatkit है, जिसके कार्यों में पीढ़ी, प्रबंधन और लघु पाठ संदेश भेजना शामिल है। नियंत्रण में आसानी के लिए, इसमें सार्वजनिक रूप से उपलब्ध संचार पोर्ट com.apple.chatkit.clientcomposeerver.xpc है। XPC सबसिस्टम का उपयोग करके, आप उपयोगकर्ता की स्वीकृति के बिना संदेश भेज और उत्पन्न कर सकते हैं। 

ठीक है, चलो एक कनेक्शन बनाने की कोशिश करते हैं।

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);

अब हमारे पास SMS भेजने की सेवा के लिए XPC कनेक्शन myConnection सेट है। हालाँकि, XPC कॉन्फ़िगरेशन निलंबित कनेक्शन के निर्माण के लिए प्रदान करता है-हमें सक्रियण के लिए एक और कदम उठाने की आवश्यकता है।

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);

कनेक्शन सक्रिय है। इस समय आईओएस 6 टेलीफोन लॉग में एक संदेश प्रदर्शित करेगा कि इस प्रकार का संचार निषिद्ध है। अब हमें संदेश भेजने के लिए आवश्यक डेटा के साथ xpc_dEDIA के समान एक शब्दकोश तैयार करना होगा।

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!");

थोड़ा बचा है: संदेश को XPC पोर्ट पर भेजें और सुनिश्चित करें कि इसे वितरित किया गया है।

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

बस इतना ही। एसएमएस भेजा गया।


1
आपको SMS भेजने के लिए XPC का उपयोग नहीं करना चाहिए। उत्पादित ऐप Apple द्वारा अनुमोदित नहीं किया जाएगा। इसके बजाय MessageUI फ्रेमवर्क का उपयोग करें
Raptor

यदि आप इस टेकनीक का उपयोग ऐप के लिए कर रहे हैं जिसे आप अपने संगठन के लिए उपयोग करते हैं, और ऐप ऐप स्टोर से नहीं गुजर रहा है, तो आपको कोई चिंता नहीं है।
मार्टिन बर्गर

क्या यह iOS 10+ वर्जन पर काम करता है?
मार्टिन बूर्जर

IOS 12 पर "XPC सैंडबॉक्स कनेक्शन त्रुटि: कनेक्शन अमान्य" हो रहा है
मार्टिन बर्जर

23

MessageUI.Framework जोड़ें और निम्न कोड का उपयोग करें

#import <MessageUI/MessageUI.h> 

और तब:

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];
}

और प्रतिनिधि विधि -

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

हे महान, लेकिन हम पृष्ठभूमि से इस कार्यक्षमता कर सकते हैं?
राज

3
Apple आपको उपयोगकर्ताओं की स्वीकृति के बिना संदेश भेजने की अनुमति नहीं देगा। उसे बटन को मैन्युअल रूप से दबाकर संदेश / मेल भेजना है। वैकल्पिक रूप से, आप अपने बैकएंड पर ईमेल / नंबर भेजकर और फिर भेजकर एक कस्टम सेवा का उपयोग कर सकते हैं। हालाँकि आप इसे सीधे iPhone पर नहीं कर सकते हैं
Bharat Gulati

21

आप इस दृष्टिकोण का उपयोग कर सकते हैं:

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


iOS स्वचालित रूप से आपके ऐप से संदेश ऐप के संदेश रचना पृष्ठ पर नेविगेट करेगा। चूँकि URL की योजना sms से शुरू होती है :, इसे एक प्रकार के रूप में पहचाना जाता है जो कि संदेश ऐप द्वारा पहचाना जाता है और इसे लॉन्च करता है।


12
//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]; 
}

आपको यह लिंक देखना चाहिए: blog.mugunthkumar.com/coding/… यह आपकी मदद करेगा
बैंकर मित्तल

12

इस प्रक्रिया का पालन करें

1। MessageUI.Frameworkपरियोजना में जोड़ेंयहाँ छवि विवरण दर्ज करें

२। आयात#import <MessageUI/MessageUI.h>.H फ़ाइल ।

३। संदेश भेजने के लिए इस कोड की प्रतिलिपि बनाएँ

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

४। delegateयदि आप चाहते हैं तो विधि को लागू करें।

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{


   ///your stuff here 

    [self dismissViewControllerAnimated:YES completion:nil];
}

भागो और जाओ!


ध्यान देने योग्य है कि आप शायद कॉलबैक पद्धति के [self dismissViewControllerAnimated:YES completion:nil];अंदर चलना चाहते हैं messageComposeViewController: didFinishWithResult:। और यह सिर्फ वहाँ लटका रहेगा।
साल्वनट्स

5

यहां iOS में एसएमएस भेजने के लिए कोड का स्विफ्ट संस्करण है। कृपया ध्यान दें कि यह केवल वास्तविक उपकरणों में काम करता है। IOS 7+ में कोड का परीक्षण किया गया। आप यहां और पढ़ सकते हैं

1) एक नया वर्ग बनाएं जो विरासत में मिले एमएफमैसेज.कॉम डिस्पोजेबलकंट्रोलरगेट और एनएसओबजेक्ट:

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's 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) इस वर्ग का उपयोग कैसे करें:

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.")
    }
}

3

IOS 4 में एक वर्ग है जो आपके एप्लिकेशन से शरीर और प्राप्तकर्ता के साथ संदेश भेजने का समर्थन करता है। यह मेल भेजने जैसा ही काम करता है। आप यहाँ प्रलेखन पा सकते हैं: लिंक पाठ


3
- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients
{
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    UIImage *ui =resultimg.image;
    pasteboard.image = ui;
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];
}

4
आपके पैरामीटर कितने उपयोगी हैं?
मार्टिंसल्यूब

[[UIApplication sharedApplication] OpenURL: [NSURL URLWithString: @ "sms:"]];
अमृत ​​गुस्सा

3

// नाम और संख्या के साथ कॉल विधि।

-(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"];
}

}

// संदेश भेजने की विधि

- (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];
 }
}

2

यदि आप चाहें, तो आप निजी ढांचे का उपयोग कर सकते हैं CoreTelephonyजिसे CTMessageCenterकक्षा कहा जाता है । Sms भेजने के लिए कुछ तरीके हैं।


1
उन्होंने विशेष रूप से पूछा कि क्या यह आधिकारिक एसडीके का उपयोग करना संभव था।
क्वेंटमिया

1
क्या आप निजी एपीआई के बारे में अधिक जानकारी प्रदान कर सकते हैं? मुझे निजी ढांचे का उपयोग करने में कोई समस्या नहीं है क्योंकि मुझे इसे ऐप स्टोर पर प्रकाशित करने की आवश्यकता नहीं है।
Bagusflyer

1

इसे इस्तेमाल करो:

- (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

आप MFMessageComposeViewController प्रस्तुत कर सकते हैं, जो एसएमएस भेज सकता है, लेकिन उपयोगकर्ता शीघ्र (वह टैप बटन भेजता है) के साथ। उपयोगकर्ता की अनुमति के बिना ऐसा करने का कोई तरीका नहीं। IOS 11 पर, आप एक्सटेंशन बना सकते हैं, जो आने वाले संदेशों के लिए फ़िल्टर की तरह हो सकता है, iOS को इसका स्पैम या नहीं बता रहा है। एसएमएस के साथ और कुछ नहीं किया जा सकता है


ताजा जवाब!
फेटी

0

आपको MFMessageComposeViewController का उपयोग करने की आवश्यकता हैयदि आप अपने स्वयं के ऐप में संदेश भेजना और भेजना चाहते हैं तो आपको ।

अन्यथा, आप साझा किए गए Application पद्धति का उपयोग कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.