標籤:
APP內部調用簡訊、電話、郵件
在APP開發中,很多時候需要在APP內部實現簡訊驗證、分享,以及切換電話撥打等功能,這也就會調用到系統相對應得功能體系;
在iOS開發中一般會出現兩種模式:
1)在APP中實現簡訊發送 和 電話撥打功能,完成後會停留在簡訊 和 電話介面
2)在APP中實現簡訊發送 和 電話撥打,完成後可以跳轉到原來的APP介面,進行下一步操作。
一 、發簡訊
1)直接撥號,撥號完成後會停留在通話記錄中
方法:
NSURL *url = [NSURL URLWithString:@"sms://10010"];
[[UIApplication sharedApplication] openURL:url];
優點 : 簡單
缺點 : 不能指定簡訊內容,而且不能跳回原APP介面
2)使用MFMessageComposeViewController ---------(需匯入MessageUI架構 )
方法:(需遵循簡訊代理----------MFMessageComposeViewControllerDelegate)
//邀請手機連絡人 //判斷裝置能否傳送簡訊 if (![MFMessageComposeViewController canSendText]) { return; } // 初始化簡訊控制器 MFMessageComposeViewController *messageVC = [[MFMessageComposeViewController alloc]init]; // 設定委派物件 messageVC.messageComposeDelegate = self; NSString *text = [NSString stringWithFormat:@"[%@]邀請你註冊IBOS · 酷辦公加入“%@”,點擊加入http://www.ibos.cn/?corp=%@", getMyInfo().realname, getMyInfo().corpname, getMyInfo().corpcode]; //簡訊內容 messageVC.body = text;// (註:如果簡訊中包含後網址,能自動識別,仍可以傳送簡訊,收件者可以點擊觸發連結,實現跳轉) //設定收件者(可以不設定,簡訊介面能跳轉到系統通訊錄,自行選擇人選) controller.recipients = [@"10010", @"10086"]; //顯示簡訊控制器 [self presentViewController:messageVC animated:YES completion:nil];
簡訊發送完成後 ,調用代理方法關閉簡訊介面
:
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { switch (result) { case MessageComposeResultCancelled://取消 { break; } case MessageComposeResultSent://發送 { break; } case MessageComposeResultFailed://失敗 { UIAlertView *alertV = [[UIAlertView alloc]initWithTitle:@"提示" message:@"傳送簡訊錯誤,請重發!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"確定", nil]; [alertV show]; break; } default: break; } // 關閉簡訊介面 [controller dismissViewControllerAnimated:YES completion:nil];}
二 、打電話
APP內部調用簡訊 、電話、郵件