標籤:
ios中傳送簡訊有兩種
1.程式外調用系統簡訊
2.程式內調用系統發簡訊
第一種比較簡單,直接調用url就可以了
oc下的代碼為
1 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"sms:%@",@"13888888888"]]]
oc版
swift下的代碼
UIApplication.sharedApplication().openURL(NSURL(string: "sms:13888888888")!)
第二種
oc下的代碼
1)匯入MessageUI.framework,並引入標頭檔:
#import
2)實現代理方法MFMessageComposeViewControllerDelegate
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{ [self dismissViewControllerAnimated:YES completion:nil]; switch (result) { case MessageComposeResultSent: //資訊傳送成功 break; case MessageComposeResultFailed: //資訊傳送失敗 break; case MessageComposeResultCancelled: //資訊被使用者取消傳送 break; default: break; }}View Code
3)傳送簡訊
-(void)showMessageView:(NSArray *)phones title:(NSString *)title body:(NSString *)body{ if( [MFMessageComposeViewController canSendText] ) { MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc] init]; controller.recipients = phones; controller.navigationBar.tintColor = [UIColor redColor]; controller.body = body; controller.messageComposeDelegate = self; [self presentViewController:controller animated:YES completion:nil]; [[[[controller viewControllers] lastObject] navigationItem] setTitle:title];//修改簡訊介面標題 } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@提示資訊 message:@該裝置不支援簡訊功能 delegate:nil cancelButtonTitle:@確定 otherButtonTitles:nil, nil]; [alert show]; }}View Code
參數phones:發簡訊的手機號碼的數組,數組中是一個即單發,多個即群發。
4)調用發簡訊的方法
[self showMessageView:[NSArray arrayWithObjects:@13888888888,@13999999999, nil] title:@test body:@你是土豪麼,麼麼噠];
View Code
Swift版本
import MessageUI
之後讓vc繼承MFMessageCompose的代理:
class CaipinDetailViewController: UIViewController,MFMessageComposeViewControllerDelegate func canSendText() -> Bool{ return MFMessageComposeViewController.canSendText() }//用來指示一條訊息能否從使用者處發送 func configuredMessageComposeViewController() -> MFMessageComposeViewController{ let messageComposeVC = MFMessageComposeViewController() messageComposeVC.messageComposeDelegate = self messageComposeVC.body = "HI! \(caipinArray[0].rest) 的 \(caipinArray[0].name) 味道很不錯,邀你共用 -來自SoFun的邀請" return messageComposeVC } func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) { controller.dismissViewControllerAnimated(true, completion: nil) }
然後在按鈕的action方法中加入以下代碼:
@IBAction func share(sender: UIButton) { let shareView = ShareViewController() self.presentViewController(shareView, animated: true, completion: nil) } @IBAction func message(sender: UIButton) { if self.canSendText(){ let messageVC = self.configuredMessageComposeViewController() presentViewController(messageVC, animated: true, completion: nil) } else { let errorAlert = UIAlertView(title: "不能發送", message: "你的裝置沒有簡訊功能", delegate: self, cancelButtonTitle: "取消") } }
我們在真機上測試一下,:
今天工作遇到要發簡訊(ios)的功能,於是隨手記錄了一下