iOS學習筆記(十四)——打電話、發簡訊

來源:互聯網
上載者:User

       電話、簡訊是手機的基礎功能,iOS中提供了介面,讓我們調用。這篇文章簡單的介紹一下iOS的打電話、發簡訊在程式中怎麼調用。

1、打電話

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10010"]];//打電話

       使用openURL這個API打電話結束後,返回的是系統的撥打到電話介面,如何才能返回自己的應用呢?有兩種方法與大家分享。

 

第一種是用UIWebView載入電話,這種是合法的,可以上App Store的。

代碼如下:

    UIWebView*callWebview =[[UIWebView alloc] init];    NSURL *telURL =[NSURL URLWithString:@"tel:10010"];    [callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];    //記得添加到view上    [self.view addSubview:callWebview];

第二種是私人方法,不能上App Store的(自己沒試過)。 

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://10010"]];

上面的代碼只是把第一個方法中的tel為telprompt.

2、發簡訊

iOS中可以使用兩種方式傳送簡訊,最簡單是使用openURL:

 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://10010"]];//發簡訊

    上面方式無法指定簡訊內容,iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewControllerDelegate,提供了傳送簡訊的介面,可以像發送郵件那樣不用跳出程式來傳送簡訊. 介紹可參閱Message UIFramework Reference


        MFMessageComposeViewController提供了操作介面使用前必須檢查canSendText方法,若返回NO則不應將這個controller展現出來,而應該提示使用者不支援傳送簡訊功能.

messageComposeDelegate :代理,處理髮送結果

recipients  :收信人<列表,支援群發>

body :簡訊內容

Frameworks中要引入MessageUI.framework 

#import <MessageUI/MessageUI.h>
添加協議:<MFMessageComposeViewControllerDelegate>

#import <MessageUI/MessageUI.h>@interface DemoViewController : UIViewController <MFMessageComposeViewControllerDelegate>@end

調用MFMessageComposeViewController,同時實現協議MFMessageComposeViewControllerDelegate。

- (void)showMessageView{        if( [MFMessageComposeViewController canSendText] ){                MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc]init]; //autorelease];                controller.recipients = [NSArray arrayWithObject:@"10010"];             controller.body = @"測試發簡訊";                controller.messageComposeDelegate = self;        [self presentModalViewController:controller animated:YES];                [[[[controller viewControllers] lastObject] navigationItem] setTitle:@"測試簡訊"];//修改簡訊介面標題    }else{                [self alertWithTitle:@"提示資訊" msg:@"裝置沒有簡訊功能"];            }    }//MFMessageComposeViewControllerDelegate- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{        [controller dismissModalViewControllerAnimated:NO];//關鍵的一句   不能為YES        switch ( result ) {                    case MessageComposeResultCancelled:            [self alertWithTitle:@"提示資訊" msg:@"發送取消"];             break;        case MessageComposeResultFailed:// send failed            [self alertWithTitle:@"提示資訊" msg:@"發送成功"];             break;        case MessageComposeResultSent:            [self alertWithTitle:@"提示資訊" msg:@"發送失敗"];             break;        default:            break;     }}- (void) alertWithTitle:(NSString *)title msg:(NSString *)msg {        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title           message:msg           delegate:self           cancelButtonTitle:nil           otherButtonTitles:@"確定", nil];                            [alert show];                 }          

發郵件可參考

/**

* @author 張興業*  http://blog.csdn.net/xyz_lmn*  iOS入門群:83702688

*  android開發進階群:241395671

*  我的新浪微博:@張興業TBOW*/

參考:

http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMessageComposeViewController_class/Reference/Reference.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.