iOS开发之打电话,发短信,发送邮件
生活随笔
收集整理的這篇文章主要介紹了
iOS开发之打电话,发短信,发送邮件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
iOS開發(fā)中,撥打電話的實(shí)現(xiàn)主要有三種方式:
- 直接撥號(hào):撥打完電話之后回不到原來的應(yīng)用,會(huì)停留在通訊錄里面,而且是直接撥打,不彈出提示
- 跳出應(yīng)用打完電話之后回到應(yīng)用
- 借助UIWebView打電話
iOS調(diào)用系統(tǒng)的發(fā)短信功能主要有兩種:
- 程序外調(diào)用系統(tǒng)發(fā)短信(不能指定短信內(nèi)容,且不能自動(dòng)回到原應(yīng)用)
程序內(nèi)調(diào)用系統(tǒng)發(fā)短信(發(fā)完短信之后可以回到App)
1.導(dǎo)入MessageUI.framework,并實(shí)現(xiàn)代理方法MFMessageComposeViewControllerDelegate
2.發(fā)送短信
- (void)showMessageView:(NSArray*)phones title:(NSString*)title body:(NSString*)body {// 判斷用戶設(shè)備能否發(fā)送短信if([MFMessageComposeViewController canSendText]) {MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];//收件人:phones是發(fā)短信的手機(jī)號(hào)碼的數(shù)組,數(shù)組中是一個(gè)即單發(fā),多個(gè)即群發(fā)controller.recipients = phones;//短信內(nèi)容controller.body = body;controller.messageComposeDelegate = self;[self presentViewController:controller animated:YES completion:nil];//修改短信界面標(biāo)題[[[[controllerviewControllers] lastObject] navigationItem] setTitle:title];}else{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示信息"message:@"該設(shè)備不支持短信功能"delegate:nilcancelButtonTitle:@"確定"otherButtonTitles:nil,nil];[alertshow];} }3.調(diào)用發(fā)短信的方法
[self showMessageView:[NSArrayarrayWithObjects:@"10086",@"10010",nil] title:@"恭喜" body:@"你們中五百萬大獎(jiǎng)啦!!"];iOS上可以使用三種方法實(shí)現(xiàn)郵件的發(fā)送:
- 使用內(nèi)置的MFMailComposeViewController發(fā)送郵件
1、導(dǎo)入MessageUI,實(shí)現(xiàn)MFMailComposeViewControllerDelegate協(xié)議
2、檢測設(shè)備是否支持郵件發(fā)送功能
//檢測設(shè)備是否支持郵件發(fā)送功能 Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); if (mailClass != nil) { if ([mailClass canSendMail]) { [self displayComposerSheet];//調(diào)用發(fā)送郵件的方法 } }3.郵件發(fā)送方法:
- (void)sendE-mail {//創(chuàng)建視圖控制器MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; mc.mailComposeDelegate = self; //設(shè)置郵件主題[mc setSubject:@"Hello, World!"];//設(shè)置收件人,收件人有三種:主收件人,cc,bcc[mc setToRecipients:[NSArray arrayWithObjects:@"xxx@126.com", nil];[mc setCcRecipients:[NSArray arrayWithObject:@"xxx@163.com"]]; [mc setBccRecipients:[NSArray arrayWithObject:@"xxx@gmail.com"]]; //設(shè)置郵件主體,有兩種格式:純文本,html格式[mc setMessageBody:@"Watson!!!\n\nCome here, I need you!" isHTML:NO]; [mc setMessageBody:@"<HTML><B>Hello, Joe!</B><BR/>What do you know?</HTML>" isHTML:YES]; //添加附件:需要三個(gè)參數(shù),一個(gè)是NSData類型的附件,一個(gè)是mime type,一個(gè)附件的名稱NSString *path = [[NSBundle mainBundle] pathForResource:@"blood_orange" ofType:@"png"]; NSData *data = [NSData dataWithContentsOfFile:path]; [mc addAttachmentData:data mimeType:@"image/png" fileName:@"blood_orange"];//視圖呈現(xiàn)[self presentModalViewController:mc animated:YES]; }- 通過第三方類庫SKPSMTPMessage發(fā)送郵件
1、下載三方庫,導(dǎo)入類#import “SKPSMTPMessage.h”、#import “NSData+Base64Additions.h”,實(shí)現(xiàn)SKPSMTPMessage代理
2、郵件發(fā)送方法
- (void)sendE-mail {//設(shè)置基本參數(shù)SKPSMTPMessage *mail = [[SKPSMTPMessage alloc] init];[mail setSubject:@"主題"]; // 設(shè)置郵件主題[mail setToEmail:@"xxx@qq.com"]; // 目標(biāo)郵箱[mail setFromEmail:@"xxx@qq.com"]; // 發(fā)送者郵箱[mail setRelayHost:@"smtp.qq.com"]; // 發(fā)送郵件代理服務(wù)器[mail setRequiresAuth:YES];[mail setLogin:@"xxx@qq.com"]; // 發(fā)送者郵箱賬號(hào)[mail setPass:@"填你們自己的"]; // 發(fā)送者郵箱密碼[mail setWantsSecure:YES]; // 需要加密[mail setDelegate:self];//設(shè)置郵件正文內(nèi)容 NSString *content = [NSString stringWithCString:"郵件內(nèi)容" encoding:NSUTF8StringEncoding];NSDictionary *plainPart = @{kSKPSMTPPartContentTypeKey : @"text/plain", kSKPSMTPPartMessageKey : content, kSKPSMTPPartContentTransferEncodingKey : @"8bit"};//添加附件 NSString *vcfPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"vcf"];NSData *vcfData = [NSData dataWithContentsOfFile:vcfPath];NSDictionary *vcfPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/directory;\r\n\tx-unix-mode=0644;\r\n\tname=\"test.vcf\"",kSKPSMTPPartContentTypeKey,@"attachment;\r\n\tfilename=\"test.vcf\"",kSKPSMTPPartContentDispositionKey,[vcfData encodeBase64ForData],kSKPSMTPPartMessageKey,@"base64",kSKPSMTPPartContentTransferEncodingKey,nil];mail.parts = [NSArray arrayWithObjects:plainPart,vcfPart,nil];[mail send]; }- 使用openURL發(fā)送郵件(用戶體驗(yàn)較差,程序會(huì)進(jìn)入后臺(tái),跳轉(zhuǎn)至郵件發(fā)送界面)
總結(jié)
以上是生活随笔為你收集整理的iOS开发之打电话,发短信,发送邮件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS开发之解析XML数据
- 下一篇: iOS开发之ReplayKit框架学习