經常使用小功能(打電話、發短信、發郵件)

打電話-⽅方法1 html

● 最簡單最直接的⽅方式:直接跳到撥號界⾯面
NSURL *url = [NSURL URLWithString:@"tel://10010"]; web

[[UIApplication sharedApplication] openURL:url]; 瀏覽器

● 缺點 電話打完後,不會⾃自動回到原應⽤用,直接停留在通話記錄界⾯面 框架

打電話-⽅方法2 url

● 撥號以前會彈框詢問⽤用戶是否撥號,撥完後能⾃自動回到原應⽤用
NSURL *url = [NSURL URLWithString:@"telprompt://10010"]; 代理

[[UIApplication sharedApplication] openURL:url]; htm

● 缺點
由於是私有API,因此可能不會被審覈經過 blog

打電話-⽅方法3 ip

● 建立⼀一個UIWebView來加載URL,撥完後能⾃自動回到原應⽤用 if (_webView == nil) {ci

   _webView = [[UIWebView alloc] initWithFrame:CGRectZero];
}
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL
URLWithString:@"tel://10010"]]];

須要注意的是:這個webView千萬不要添加到界⾯面上來,否則會擋住其餘界⾯面 

發短信-⽅方法1 

● 直接跳到發短信界⾯面,可是不能指定短信內容,⽽並且不能⾃自動回到原應⽤用

NSURL *url = [NSURL URLWithString:@"sms://10010"];

[[UIApplication sharedApplication] openURL:url]; 

發短信-⽅方法2 

● 若是想指定短信內容,那就得使⽤用MessageUI框架 ● 包含主頭⽂文件
#import <MessageUI/MessageUI.h>

● 顯⽰示發短信的控制器 MFMessageComposeViewController *vc =

[[MFMessageComposeViewController alloc] init]; // 設置短信內容
vc.body = @"吃飯了沒?";
// 設置收件⼈人列表

vc.recipients = @[@"10010", @"02010010"]; // 設置代理
vc.messageComposeDelegate = self;

// 顯⽰示控制器
[self presentViewController:vc animated:YES completion:nil]; 

 

● 代理⽅方法,當短信界⾯面關閉的時候調⽤用,發完後會⾃自動回到原應⽤用

- (void)messageComposeViewController:
(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result

{

completion:nil];

if (result == MessageComposeResultCancelled) {

NSLog(@"取消發送");

} else if (result == MessageComposeResultSent) {

NSLog(@"已經發出");

} else {

NSLog(@"發送失敗");

}

// 關閉短信界⾯面
[controller dismissViewControllerAnimated:YES

發郵件-⽅方法1 

● ⽤用⾃自帶的郵件客戶端,發完郵件後不會⾃自動回到原應⽤用
NSURL *url = [NSURL URLWithString:@"mailto://10010@qq.com"];

[[UIApplication sharedApplication] openURL:url]; 

發郵件-⽅方法2 

● 跟發短信的第2種⽅方法差很少,只不過控制器類名叫作:MFMailComposeViewController

● 假設發送的郵件內容如右圖所⽰示,代碼實現看備註 

● 郵件發送後的代理⽅方法回調,發完後會⾃自動回到原應⽤用

- (void)mailComposeController:
(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result error:
(NSError *)error

{

completion:nil];

if (result == MFMailComposeResultCancelled) {

NSLog(@"取消發送");

} else if (result == MFMailComposeResultSent) {

NSLog(@"已經發出");

} else {

NSLog(@"發送失敗");

// 關閉郵件界⾯面
[controller dismissViewControllerAnimated:YES

打開其餘常見⽂文件 

● 若是想打開⼀一些常見⽂文件,⽐好比html、txt、PDF、PPT等,均可以使 ⽤用UIWebView打開

● 只須要告訴UIWebView⽂文件的URL便可
● ⾄至於打開⼀一個遠程的共享資源,⽐好比http協議的,也能夠調⽤用系統⾃自帶的

Safari瀏覽器:
NSURL *url = [NSURL URLWithString:@」http://www.baidu.com"];

[[UIApplication sharedApplication] openURL:url];
相關文章
相關標籤/搜索