مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

آموزش کامل ارسال پیامک SMS در iPhone با iOS


این جلسه در ادامه مقاله قبلی و در خصوص email attachment می باشد و یک آموزش کوتاه در مورد نحوه ارسال کردن پیام های متنی SMS در اپ های iOS را ارائه می دهد. بیایید کار را شروع کنیم.

فریم ورک Message UI فقط برای ایمیل طراحی نشده است ، بلکه view controller های تخصصی برای توسعه دهندگان فراهم می نماید که رابط کاربری استانداردی را برای ایجاد پیام های متنی SMS در داخل اپ ارائه می دهد. در حالی که ما از کلاس  MFMailComposeViewController برای ایمیل استفاده می نماییم ، این فریم ورک کلاس دیگری را تحت عنوان MFMessageComposeViewController  برای هندل کردن پیام متنی فراهم می کند.

اساساً کاربرد کلاس MFMessageComposeViewController بسیار شبیه به کلاس mail composer است. اگر جلسه قبل را مطالعه نموده باشید ، نباید هیچ مشکلی با این کلاس داشته باشید. در هر صورت ، ما قصد داریم با گذر از مفاهیم مرتبط با کلاس MFMessageComposeViewController  ، کاربرد آن را در یک اپ ساده نشان دهیم.

اپ Demo

ما از اپ جلسه قبل با کمی دستکاری ، دوباره استفاده خواهیم نمود. این اپ ، لیستی از فایل ها را در فرمت جدول نشان می دهد. با این حال ، به جای نشان دادن  mail composer ، اپ رابط کاربری پیام را نمایش خواهد داد و وقتی کاربر بر روی هر کدام از ردیف های جدول ضربه بزند ، رابط کاربری با محتوای پیام پر خواهد شد.

شروع کار

برای صرفه جویی در زمان شما در ایجاد پروژه Xcode ، می توانید تمپلت پروژه را از اینجا  download the project template دانلود نموده و کار کدنویسی را با آن شروع نمایید. در تمپلت پروژه ، ما قبلاً Storyboard را ساخته ایم و table view را برای شما لود نموده ایم.

نکته: اگر در استفاده از iOS SDK تازه کار هستید ، شما را ترغیب می نماییم که پروژه را از ابتدا ، خودتان بسازید. ما در جلسات قبل ، چندین آموزش ارائه کرده ایم که در طی آنها ایجاد table view و  storyboard آموزش داده شده اند.

وارد نمودن فریم ورک MessageUI

ابتدا ، فریم ورک MessageUI را به پروژه import می نماییم.

پیاده سازی نماینده

به فایل “AttachmentTableViewController.m” می رویم. کد زیر را برای import کردن هدر MessageUI  و پیاده سازی MFMessageComposeViewControllerDelegate اضافه می نماییم:

#import <MessageUI/MessageUI.h>
 
@interface AttachmentTableViewController () <MFMessageComposeViewControllerDelegate> 

پروتکل MFMessageComposeViewControllerDelegate  یک متد واحد را تعریف می نماید و در زمانی که کاربر ساخت یک SMS message را تمام می کند ، فراخوانی خواهد شد. باید مراحل پیاده سازی و هندل نمودن وضعیت های مختلف توسط این متد را انجام نماییم. وضعیت ها شامل سه حالت زیر می باشند:

  1. کاربر ویرایش SMS را لغو می نماید.
  2. کاربر روی کلید send ضربه می زند و SMS با موفقیت ارسال می شود.
  3. کاربر روی کلید send ضربه می زند و ارسال ناموفق انجام می شود.

کد زیر را در فایل “AttachmentTableViewController.m” اضافه می کنیم. در وضعیت شماره 3 ، ما یک پیام هشدار نشان می دهیم. برای سایر موارد ، به سادگی message composer را از صفحه خارج می نماییم.

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult) result
{
    switch (result) {
        case MessageComposeResultCancelled:
            break;
            
        case MessageComposeResultFailed:
        {
            UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Failed to send SMS!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [warningAlert show];
            break;
        }
            
        case MessageComposeResultSent:
            break;
            
        default:
            break;
    }
    
    [self dismissViewControllerAnimated:YES completion:nil];
}

بالا آوردن Message Composer در اپ

زمانی که کاربر هر کدام از ردیف های جدول را انتخاب می نماید ، ما فایل انتخاب شده را بازیابی کرده و یک متد سفارشی را برای بالا آوردن message composer فرخوانی می کنیم. متد “didSelectRowAtIndexPath:”  را با کد زیر ، به روز رسانی می کنیم:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *selectedFile = [_files objectAtIndex:indexPath.row];
    [self showSMS:selectedFile];
} 

متد “showSMS:” کد اصلی برای مقداردهی و پر کردن محتوای پیش فرض پیام متنی SMS می باشد. کد زیر را اضافه می کنیم:

- (void)showSMS:(NSString*)file {
    
    if(![MFMessageComposeViewController canSendText]) {
        UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device doesn't support SMS!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [warningAlert show];
        return;
    }
 
    NSArray *recipents = @[@"12345678", @"72345524"];
    NSString *message = [NSString stringWithFormat:@"Just sent the %@ file to your email. Please check!", file];
    
    MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
    messageController.messageComposeDelegate = self;
    [messageController setRecipients:recipents];
    [messageController setBody:message];
    
    // Present message view controller on screen
    [self presentViewController:messageController animated:YES completion:nil];
}

اگر چه بیشتر دستگاه های iOS باید بتوانند پیام های متنی را ارسال نمایند ، به عنوان یک برنامه نویس ، شما باید بتوانید استثناها را نیز در نظر بگیرید. اگر این اپ توسط یک iPad مورد استفاده قرار گیرد ، چه اتفاقی می افتد؟ در این مورد ، واضح است که دستگاه نمی تواند پیام متنی را ارسال نماید. بنابراین در ابتدای کد ، بررسی می کنیم آیا دستگاه مجاز به ارسال پیام متنی با استفاده از متد  “canSendText” از MFMessageComposeViewController می باشد یا نه.

مابقی کد بسیار ساده است و شبیه به کدی است که در آموزش ایمیل نشان دادیم. ما می توانیم چندین گیرنده (یعنی شماره های تلفن) را در پیام متنی وارد نماییم. برای بدنه پیام ، اپ فقط از محتوای متنی (textual content) پشتیبانی می نماید.

با آماده سازی متن ، به سادگی متد “presentModalViewController:” را برای بالا آوردن message composer فراخوانی می نماییم.

کامپایل و اجرا نمودن اپ

بسیار خوب! کار ساده و راحتی بود. اکنون اپ را اجرا نموده و آن را تست می نماییم. اما باید دقت شود که تست اپ ، در یک دستگاه iOS واقعی انجام می شود. شبیه ساز امکان استفاده از قابلیت ارسال SMS را ندارد.

اگر در اپ قابلیت ارسال SMS را نخواهیم چه باید بکنیم؟

پیاده سازی فوق ، یکپارچه سازی کاملی را از قابلیت SMS در اپ iOS فراهم می نماید. اما ، اگر فقط بخواهیم که اپ پیام های پیش فرض را هدایت کند و پیام متنی ارسال نماییم ، چه باید بکنیم؟ این کار حتی ساده تر از حالت فوق نیز انجام می شود. می توانیم این کار با یک خط کد انجام دهیم:

[[UIApplication sharedApplication] openURL: @"sms:98765432"]; 

در iOS ، ما امکان داریم که با سایر اپ ها با استفاده از URL ارتباط برقرار کنیم. سیستم عامل سیار (mobile OS) همیشه با پشتیبانی داخلی از طرح های http ، mailto ، tel و sms URL همراه است. هنگامی که یک HTTP URL را باز می کنیم ، iOS به طور پیش فرض URL را از طریق Safari باز می نماید. اگر بخواهیم که اپ Message را باز نماییم ، می توانیم از برنامه sms URL schedule استفاده نماییم و گیرنده را تعیین کنیم. با این حال ، چنین طرح URL ی ، نمی تواند به ما این امکان را بدهد که محتوای پیش فرض را قرار دهیم.

اتمام کار

در این آموزش ، ما به شما یک روش ساده برای ارسال کردن پیام متنی در داخل اپ را نشان دادیم. برای داشتن مرجع کامل از آموزش فوق ، می توانید از اینجا download the full source code  کدهای آموزش را دانلود نمایید.

فصلِ: 3 , تعداد قسمت ها: 179 , سطح: صفر تا صد

این فصل در یک نگاه:

در این دوره آموزشی ، برنامه نویسی اندروید و ios را با استفاده از زامارین خواهیم آموخت. همچنین به صورت کاملا پروژه محور ، اپلیکیشن فروشگاهی مشابه دیجی کالا را پیاده سازی خواهیم کرد. در انته…
فصلِ: 5 , تعداد قسمت ها: 221 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

در این فصل:-نمایش notification به کاربر زمانی که اتفاقاتی از قبیل لایک کردن پست و ... میافتد(این مبحث مبحثی مهم بوده و ج…

  توضیحات کلی دوره: با سلام خوش اومدین به حرفه ای ترین دوره ی Swift ابتدای کار ممکن است سوالی برای شما پیش آید: -من نیازی به ساخت اپلیکیشن اجتماعی ندارم چرا باید این دوره را ببینم؟ ج…
فصلِ: 7 , تعداد قسمت ها: 159 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

اپل نویس حرفه ای شوید... با این پکیج کسب درآمد میلیونی کنید....   در این پکیج به نکات ریز و درشت زیادی پرداختیم که خیلی خیلی میتونه به شما کمک کنه که تبدیل به برنامه نویس حرفه ای شوید... …
فصلِ: 12 , تعداد قسمت ها: 126 , سطح: صفر تا صد
موضوعات: آموزش IOS

این فصل در یک نگاه:

فصل 16 فصل آخرمون هست و میایم توی این فصل یه سری مباحث کوچیکی که جامونده و کارهای نهایی برای انتشار برنامه توی مایکت های…

با سلام نکته:هیچ نیازی به mac و یا iphone نیست... نکته:هیچ نیازی به بلد بودن برنامه نویسی از قبل نیست... مباحثی که توی این دوره مرور میکنیم میتونه ما رو از سطح صفر برنامه نویسی ios به صد …
فصلِ: 6 , تعداد قسمت ها: 194 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل آپدیت های مربوط به دوره را قرار میدهیم…

با سلام و خسته نباشد خدمت کلیک سایتی های عزیز در ادامه با توضیحات مختصری درمورد دوره ی react native با ما همراه باشید: React Native چیست؟ قطعا یکی از آرزوهای برنامه نویسان این میباشد که ب…
فصلِ: 5 , تعداد قسمت ها: 51 , سطح: صفر تا صد

این فصل در یک نگاه:

اموزش پرداخت درون برنامه ای بازار در یونیتی-اموزش خرید سکه در بازی-اموزش خرید مصرفی و غیر مصرفی…

توضیحات کلی مجموعه: آموزش مقدماتی تا پیشرفته یونیتی(ساخت بازی توپ چرخنده-اموزش بازی دوبعدی-اموزش بازی سه بعدی اول شخص شوتر-اموزش بازی سه بعدی رالی (ماشین سواری))   سرفصلهای دوره: نصب ی…
فصلِ: 2 , تعداد قسمت ها: 68 , سطح: صفر تا صد

این فصل در یک نگاه:

آموزش ساخت یک فروشگاه کوچک-آموزش کار با bottom navigation -آموزش کار با تب بار-آموزش کار با scrollview - آموزش کار با ان…

توضیحات کلی مجموعه: آموزش دوره فلاتر از پایه تا پیشرفته(این دوره به دوره متخصص فلاتر تغییر پیدا کرد) درسال های گذشته تعدا زیادی فریمورک معرفی شد که هرکدام تجربه خاص خودش رو داشت،اما فلاتر …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید