今天工作遇到要發簡訊(ios)的功能,於是隨手記錄了一下

來源:互聯網
上載者:User

標籤:

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)的功能,於是隨手記錄了一下

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.