কীভাবে প্রোগ্রামে আইফোনে এসএমএস পাঠানো যায়?


526

প্রোগ্রামাটিকভাবে কোনও এসএমএস প্রেরণ করা কি সম্ভব এবং কীভাবে কেউ জানেনiPhoneঅফিসিয়াল এসডিকে / কোকো টাচ দিয়ে থেকে ?


আইওএস 4 এ আপনি কোড সহ এসএমএস পাঠাতে পারেন তবে সমস্যাটি হ'ল আপনার অ্যাপ্লিকেশনটি বন্ধ হয়ে যাবে
পঙ্কজ ক্যান্থলা

অফিসিয়াল এসডিকে ব্যবহার করা যদি অন্যের প্রয়োজন হয় না তবে আমি এই পোস্টটি লিখেছিলাম কিভাবে এটি করতে হয় তা বোঝাতে টিউলিও
মেগান স্পায়ার

আপনি আপনার জিমেইলের বাইরে গুগল স্প্রেডশিট তৈরি করতে পারেন, আপনার পছন্দ মতো ক্ষেত্রগুলি তৈরি করতে পারেন, tools->script editorএবং একটি পোষ্ট অনুরোধে MailApp.sendEmailএকটি ফোন নম্বরে ইমেল প্রেরণের জন্য এপিআই ব্যবহার করুন । এটিটি হ'ল ইয়োরউনবার্ড @ এমএমএস.টনেট, টিমোবাইল হ'ল ইয়োরউনার @ টমোমেল.নেট আমার মনে হয় (সমস্ত নিখরচায়)
কোটি এমব্রি

উত্তর:


404

বিধিনিষেধ

আপনি যদি আইফোনের কোনও প্রোগ্রামের মধ্যে একটি এসএমএস পাঠাতে পারেন, আপনি ব্যাকগ্রাউন্ডে থাকা স্প্যাম লোকদের গেমগুলি লিখতে পারবেন। আমি নিশ্চিত যে আপনি সত্যই আপনার বন্ধুদের কাছ থেকে স্প্যাম পেতে চান, "এই নতুন গেমটি ব্যবহার করে দেখুন! এটি আমার বক্সক্সারদেরকে ছাপিয়ে যায় এবং আপনারও হয়ে যায়! Roxxersboxxers.com !!!! আপনি যদি এখন সাইন আপ করেন তবে আপনি 3,200 আরবি পাবেন পয়েন্ট !! "

অ্যাপলের স্বয়ংক্রিয় (বা এমনকি আংশিক স্বয়ংক্রিয়) এসএমএস এবং ডায়ালিং ক্রিয়াকলাপগুলির জন্য বিধিনিষেধ রয়েছে। (কল্পনা করুন যদি গেমটি দিনের নির্দিষ্ট সময়ে 911 ডায়াল করে থাকে)

আপনার সেরা বাজি হ'ল ইন্টারনেটে একটি অন্তর্বর্তী সার্ভার সেট আপ করা যা কোনও অনলাইন এসএমএস প্রেরণ পরিষেবা ব্যবহার করে এবং আপনার যদি অটোমেশন প্রয়োজন হয় তবে সেই রুটের মাধ্যমে এসএমএস প্রেরণ করুন। (যেমন, আইফোনে আপনার প্রোগ্রামটি আপনার সার্ভারে একটি ইউডিপি প্যাকেট প্রেরণ করে, যা আসল এসএমএস প্রেরণ করে)

আইওএস 4 আপডেট

আইওএস 4, এখন viewControllerআপনার অ্যাপ্লিকেশনটিতে আমদানি করতে পারে এমন একটি সরবরাহ করে। আপনি এসএমএস ক্ষেত্রগুলি প্রিপোপুলেট করেন, তারপরে ব্যবহারকারীরা এসএমএস প্রেরকটিকে নিয়ামকের মধ্যে সূচনা করতে পারেন। "এসএমএস: ..." ইউআরএল ফর্ম্যাটটি ব্যবহার করার মতো নয়, এটি আপনার অ্যাপ্লিকেশনটিকে উন্মুক্ত রাখতে দেয় এবং আপনাকে দেহ এবং শরীর উভয়কেই তৈরি করতে দেয় ক্ষেত্র। এমনকি আপনি একাধিক প্রাপককেও নির্দিষ্ট করতে পারেন।

এটি ব্যবহারকারীর সম্পর্কে স্পষ্টভাবে অবহিত না হয়ে অ্যাপ্লিকেশনগুলিকে স্বয়ংক্রিয় এসএমএস পাঠানো থেকে বিরত রাখে। আপনি এখনও আইফোন থেকে সম্পূর্ণ স্বয়ংক্রিয় এসএমএস প্রেরণ করতে পারবেন না, এর জন্য কিছু ব্যবহারকারীর ইন্টারঅ্যাকশন প্রয়োজন। তবে এটি কমপক্ষে আপনাকে সমস্ত কিছু বসানোর অনুমতি দেয় এবং অ্যাপ্লিকেশনটি বন্ধ করা এড়িয়ে যায়।

MFMessageComposeViewController বর্গ তথ্যসমৃদ্ধ করা হয়, এবং টিউটোরিয়াল দেন কত সহজ তা বাস্তবায়ন হয়।

আইওএস 5 আপডেট

আইওএস 5-এ আইপড টাচ এবং আইপ্যাড ডিভাইসের জন্য মেসেজিং অন্তর্ভুক্ত রয়েছে, সুতরাং আমি নিজেই এখনও এটি পরীক্ষা করে নিই এমনও হতে পারে যে সমস্ত আইওএস ডিভাইস এমএফএমেসেজকম্পোজভিউ কনট্রোলারের মাধ্যমে এসএমএস পাঠাতে সক্ষম হবে। যদি এটি হয় তবে অ্যাপল একটি এসএমএস সার্ভার চালাচ্ছে যা সেলুলার মডেম না থাকা ডিভাইসের পক্ষে বার্তা প্রেরণ করে।

আইওএস 6 আপডেট

এই শ্রেণিতে কোনও পরিবর্তন নেই।

আইওএস 7 আপডেট

আপনি এখন যে বার্তাটি ব্যবহার করছেন সেটি কোনও বিষয় বা সংযুক্তি গ্রহণ করবে এবং কী ধরণের সংযুক্তি গ্রহণ করবে তা পরীক্ষা করে দেখতে পারেন। আপনি বিষয়টি সম্পাদনা করতে পারেন এবং বার্তায় সংযুক্তি যুক্ত করতে পারেন, যেখানে মাধ্যম এটি অনুমতি দেয়।

আইওএস 8 আপডেট

এই শ্রেণিতে কোনও পরিবর্তন নেই।

আইওএস 9 আপডেট

এই শ্রেণিতে কোনও পরিবর্তন নেই।

আইওএস 10 আপডেট

এই শ্রেণিতে কোনও পরিবর্তন নেই।

আইওএস 11 আপডেট

এই শ্রেণিতে কোনও উল্লেখযোগ্য পরিবর্তন নেই

এই শ্রেণীর সীমাবদ্ধতা

মনে রাখবেন যে এটি আইওএস 4 ছাড়াই ফোনে কাজ করবে না এবং এটি আইওড 5 এর অধীনে আইপড টাচ বা আইপ্যাডে কাজ করবে না, সম্ভবত এটি ব্যবহার করার আগে আপনাকে অবশ্যই ডিভাইস এবং আইওএস সীমাবদ্ধতাগুলি সনাক্ত করতে হবে নিয়ামক বা ঝুঁকি আপনার অ্যাপ্লিকেশনটি সম্প্রতি আপগ্রেড করা 3 জি, 3 জিএস এবং 4 আইফোনে সীমাবদ্ধ করে।

যাইহোক, একটি মধ্যবর্তী সার্ভার যা এসএমএস পাঠায় এটি এই আইওএস ডিভাইসগুলির যে কোনও এবং যতক্ষণ না তাদের ইন্টারনেট অ্যাক্সেস রয়েছে ততক্ষণ এসএমএস প্রেরণের অনুমতি দেবে, তাই এটি অনেকগুলি অ্যাপ্লিকেশনের জন্য আরও ভাল সমাধান হতে পারে। পর্যায়ক্রমে, উভয় ব্যবহার করুন এবং ডিভাইসটি সমর্থন না করে কেবল তখনই কোনও অনলাইন এসএমএস পরিষেবায় ফিরে যান।


12
এবং আপনি যদি সেই ডোমেনটি কিনে থাকেন তবে আমি আর কখনও আপনার মতো তাকাতে সক্ষম হব না।
অ্যাডাম ডেভিস

79
আমার মনে হয় যে এই পোস্টটি স্প্যাম হিসাবে কেউ ফ্ল্যাগ করেছে এমনটি বিদ্রূপাত্মক। লাইনের মধ্যে পড়ুন, মানুষ!
র্যান্ডলফো

2
-1 কারণ এটি অনুমান হিসাবে পড়ে। এছাড়াও, অ্যাপ-ইন এসএমএস কীভাবে প্রেরণ করতে হবে সে সম্পর্কে জাস 'ওয়ানড্রিন'স এবং রাইডগাজের উত্তরগুলি দেখুন।
ফ্র্যাঙ্ক শেয়ার

8
@ ফ্র্যাঙ্ক - নতুন আইওএস 4 বৈশিষ্ট্যগুলি প্রতিবিম্বিত করতে আমার লিখনআপ আপডেট করেছে। মুছে ফেলা ইচ্ছা-ধোয়া শব্দ।
অ্যাডাম ডেভিস

13
আমি সত্যিই প্রশংসা করি যে আপনি এই পোস্টটি নতুন আইওএস সংস্করণের জন্য আপডেট রেখেছেন। :)
সিরিওন

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
আপনি অবশ্যই টোভিলিওর মতো কোনও পরিষেবা ব্যবহার করে ব্যাকগ্রাউন্ডে এসএমএস পাঠাতে পারেন, তবে আপনি যদি এটি ব্যবহারকারীর ফোন নম্বর থেকে পাঠাতে চান তবে তাদের উপরের পদ্ধতির মাধ্যমে বার্তাটি অনুমোদন করতে হবে।
ড্যানিয়েল অমিতায়ে

3
উপরের কোডটি ব্যবহার করে যে কেউ MFMessageComposeViewController *controller = ...ইফ ব্লকের ভিতরে থাকা বিবেচনা করতে পারে । (ক্লাস পদ্ধতি পরীক্ষা করতে একটি দৃষ্টান্ত থাকতে হবে না)
unsynchronized

লিঙ্কটি http://blog.mugunthkumar.com/coding/iphone-tutorial-how-to-send-in-app-sms/আমার ল্যাপটপে "502 ব্যাড গেটওয়ে" বলে। হয়ত লিঙ্কটি নষ্ট হয়ে গেছে।
নিকিতা ভ্লাসেনকো

99
  1. আপনার এক্সকোড প্রকল্পে আপনাকে অবশ্যই বার্তা ইউআই.ফ্রেমওয়ার্ক যুক্ত করতে হবে
  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]এসএমএস অ্যাপ্লিকেশনটি খোলার জন্য একটি ইউআরএল ব্যবহার করতে পারেন , তবে কীভাবে কোনও পাঠ্য সহ কোনও এসএমএসের বডিটি প্রিফিল করবেন সে সম্পর্কে কোনও ইঙ্গিত নেই।


প্রতিক্রিয়া-নেটিভ-যোগাযোগগুলি এসএমএস খোলার সময় পাঠ্যটি পূর্বে পূরণ করার জন্য & বডি = প্যারামিটার ব্যবহার করে: আইওএসের জন্য টার্গেটফোনেম্বার এবং বডি = পাঠ্যপরিচয়
ডগ ভোস

আমি আমার আইফোন 8 এ এটি চেষ্টা করেছি এবং এটি দুর্দান্ত কাজ করেছে ... ধন্যবাদ!
ব্র্যাড পার্কগুলি

আমাকে একটি নির্দিষ্ট সংখ্যায় এসএমএস পাঠাতে হবে তবে পূর্বনির্ধারিত (প্রিফিল) বডি টেক্সট সহ। আপনার বডি টেক্সটটি 4 সম্ভাব্য বিকল্প থেকে ম্যানুয়াল নির্বাচন হওয়া উচিত। যেমন অ্যাপ্লিকেশনটি খোলে এবং পপ-আপগুলি "কারণ নির্বাচন করুন"। তারপরে 4 টি বিকল্প উপলব্ধ। এর পরে ব্যবহারকারী এই 4 টি বিকল্পের মধ্যে একটি নির্বাচন করে এবং তারপরে ব্যবহারকারীদের বডি টেক্সট হিসাবে একটি স্বয়ংক্রিয় এসএমএস পাঠানো হয়। কোন টিপ?
seralouk

25

ম্যাকওএসের আন্ত-প্রক্রিয়া যোগাযোগের একটি সিস্টেম হ'ল এক্সপিসি। এই সিস্টেম স্তরটি libSystem এবং লঞ্চ ব্যবহার করে প্লাস্টিক স্ট্রাকচারের স্থানান্তরের ভিত্তিতে আন্ত-প্রক্রিয়া যোগাযোগের জন্য তৈরি করা হয়েছে। আসলে, এটি এমন একটি ইন্টারফেস যা অভিধানের মতো কাঠামোর বিনিময়ের মাধ্যমে প্রক্রিয়া পরিচালনা করার অনুমতি দেয় allows বংশগতির কারণে, আইওএস 5 এরও এই ব্যবস্থাটি রয়েছে।

এই ভূমিকা দিয়ে আমি কী বোঝাতে চাইছি তা আপনি ইতিমধ্যে বুঝতে পারেন। হ্যাঁ, আইওএসে এমন সিস্টেম পরিষেবা রয়েছে যা এক্সপিসি যোগাযোগের সরঞ্জামাদি অন্তর্ভুক্ত করে। এবং আমি এসএমএস প্রেরণের জন্য ডেমন দিয়ে কাজটির উদাহরণ দিয়ে দিতে চাই। তবে, এটি উল্লেখ করা উচিত যে এই ক্ষমতাটি আইওএস 6 এ স্থির করা হয়েছে তবে এটি আইওএস 5.0—5.1.1 এর জন্য প্রাসঙ্গিক। এর শোষণের জন্য জেলব্রেক, ব্যক্তিগত ফ্রেমওয়ার্ক এবং অন্যান্য অবৈধ সরঞ্জামের প্রয়োজন নেই। ডিরেক্টরি / usr / অন্তর্ভুক্ত / এক্সপিসি / * থেকে কেবলমাত্র হেডার ফাইলগুলির সেট প্রয়োজন।

আইওএসে এসএমএস প্রেরণের অন্যতম উপাদান হ'ল সিস্টেম সার্ভিস com.apple.chatkit, যার কাজগুলির মধ্যে রয়েছে প্রজন্ম, পরিচালনা এবং সংক্ষিপ্ত পাঠ্য বার্তা প্রেরণ। নিয়ন্ত্রণের স্বাচ্ছন্দ্যের জন্য এটিতে সর্বজনীনভাবে উপলব্ধ যোগাযোগ বন্দর com.apple.chatkit.clientcomposeserver.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);

এখন আমাদের কাছে এক্সপিসি সংযোগ মাই কানেকশনটি এসএমএস প্রেরণের পরিষেবাতে সেট করা আছে। তবে, এক্সপিসি কনফিগারেশন স্থগিত সংযোগ তৈরির ব্যবস্থা করে - আমাদের সক্রিয়করণের জন্য আরও একটি পদক্ষেপ নেওয়া দরকার।

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_d অভিধান এর অনুরূপ অভিধান তৈরি করতে হবে।

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_connection_send_message(myConnection, mydict);
xpc_connection_send_barrier(myConnection, ^{
NSLog(@"The message has been successfully delivered");
});

এখানেই শেষ. এসএমএস পাঠানো হয়েছে।


1
আপনার এসএমএস প্রেরণের জন্য এক্সপিসি ব্যবহার করা উচিত নয়। উত্পাদিত অ্যাপ্লিকেশন অ্যাপল দ্বারা অনুমোদিত হবে না। পরিবর্তে বার্তা ইউআই ফ্রেমওয়ার্ক ব্যবহার করুন
র‌্যাটার

আপনি যদি নিজের প্রযুক্তিটির জন্য এই অ্যাপ্লিকেশনটি ব্যবহার করেন যা আপনি আপনার সংস্থার জন্য ব্যবহার করেন এবং অ্যাপটি অ্যাপ স্টোরের মধ্যে দিয়ে চলেছে না, আপনার কোনও উদ্বেগ নেই।
মার্টিন বার্গার

এটি কি আইওএস সংস্করণ 10+ এ কাজ করে?
মার্টিন বার্গার

আইওএস 12 এ "এক্সপিসি স্যান্ডবক্স সংযোগ ত্রুটি: সংযোগটি অবৈধ"
মার্টিন বার্গার

23

বার্তা ইউআই.ফ্রেমওয়ার্ক যুক্ত করুন এবং নিম্নলিখিত কোডটি ব্যবহার করুন

#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
অ্যাপল আপনাকে ব্যবহারকারীদের অনুমোদন ছাড়াই বার্তা প্রেরণের অনুমতি দেবে না। তাকে ম্যানুয়ালি বোতাম টিপে বার্তা / মেল পাঠাতে হবে। বিকল্পভাবে, আপনি আপনার ব্যাকএন্ডে ইমেল / নম্বর প্রেরণ করে এবং পরে প্রেরণ করে একটি কাস্টম পরিষেবা ব্যবহার করতে পারেন। যদিও আপনি সরাসরি আইফোনে এটি করতে পারবেন না
ভারত গুলতি

21

আপনি এই পদ্ধতির ব্যবহার করতে পারেন:

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


আইওএস স্বয়ংক্রিয়ভাবে আপনার অ্যাপ থেকে বার্তা অ্যাপের বার্তা রচনা পৃষ্ঠাতে নেভিগেট করবে। যেহেতু ইউআরএল এর স্কিমটি এসএমএস দিয়ে শুরু হয়: এটি মেসেজ অ্যাপ্লিকেশন দ্বারা স্বীকৃত এবং এটি চালু করে এমন এক ধরণের হিসাবে চিহ্নিত।


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

আইওএসে এসএমএস পাঠানোর জন্য কোডের সুইফ্ট সংস্করণটি এখানে। দয়া করে নোট করুন যে এটি কেবল আসল ডিভাইসে কাজ করে। আইওএস 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

আইওএস 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
আপনার পরামিতিগুলি কতটা কার্যকর?
martinsurleweb

[[ইউআইএপ্লিকেশন শেয়ারড অ্যাপ্লিকেশন] ওপেন URL: [এনএসআরএল ইউআরএল উইথস্ট্রিং: @ "এসএমএস:"]];
আমর ক্ষুব্ধ

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ক্লাস বলা হয় ব্যবহার করতে পারেন । এসএমএস পাঠানোর কয়েকটি পদ্ধতি রয়েছে।


1
তিনি বিশেষভাবে জিজ্ঞাসা করেছিলেন যে এটি কি অফিসিয়াল এসডিকে ব্যবহার করা সম্ভব ছিল?
কোয়ান্টামিয়া

1
আপনি কি ব্যক্তিগত এপিআই সম্পর্কে আরও তথ্য সরবরাহ করতে পারেন? ব্যক্তিগত কাঠামোটি ব্যবহার করতে আমার কোনও সমস্যা নেই কারণ এটি অ্যাপ স্টোরে প্রকাশ করার দরকার নেই।
বাগসফ্লায়ার

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

আপনি এমএফমেসেজকম্পোজভিউ কনট্রোলার উপস্থাপন করতে পারেন, যা এসএমএস পাঠাতে পারে তবে ব্যবহারকারী প্রম্পটের সাথে (সে প্রেরণ বোতামটি ট্যাপ করে)। ব্যবহারকারীর অনুমতি ব্যতীত এটি করার কোনও উপায় নেই। আইওএস ১১-এ, আপনি এক্সটেনশন তৈরি করতে পারেন, এটি আগত বার্তাগুলির ফিল্টারের মতো হতে পারে, আইওএসকে এটির স্প্যাম বলে বা না জানাও। এসএমএস সহ আরও কিছু করা যায় না


টাটকা উত্তর!
ফ্যাটি

0

আপনার MFMessageComposeViewController ব্যবহার করা দরকার যদি নিজের অ্যাপটিতে বার্তা তৈরি করে প্রেরণ করতে চান তবে আপনাকে ।

অন্যথায়, আপনি শেয়ারড অ্যাপ্লিকেশন পদ্ধতিটি ব্যবহার করতে পারেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.