引
在應(yīng)用程序內(nèi),調(diào)用系統(tǒng)的功能來實(shí)現(xiàn)打電話、發(fā)短信和發(fā)郵件,通過電話號碼或者郵箱,直接跳轉(zhuǎn)到系統(tǒng)的功能界面。
PS:調(diào)試好像只能真機(jī)調(diào)試,模擬器沒有反應(yīng),真機(jī)就可以跳轉(zhuǎn),不知道是不是必須真機(jī),但方法肯定是可行的。
1、打電話
應(yīng)用內(nèi)調(diào)用系統(tǒng)打電話有兩種方式:
1)WebView方式
使用WebView來跳轉(zhuǎn),把電話號碼通過URL傳遞給WebView,這種方式會彈出是否要撥打的提示,可以選擇撥打或者不撥打,打完也會自動回到應(yīng)用界面,推薦。
UIWebView *callWebview =[[UIWebView alloc] init];
NSURL *telURL =[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",self.phoneNumber.text]];
[callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
[self.view addSubview:callWebview];
在URL中加入“tel:”開頭,后接電話號碼,系統(tǒng)就會識別為調(diào)用撥號器了。
2)UIApplication方式
使用UIApplication來跳轉(zhuǎn),同樣傳遞和上一種方式同樣的URL,這種方式不會彈出提示問你確認(rèn)撥打與否,而是直接撥打,打完也會停在通訊錄那,不會回到應(yīng)用,不推薦。
NSURL *telURL =[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",self.phoneNumber.text]];
[[UIApplication sharedApplication] openURL:telURL];
2、發(fā)短信
應(yīng)用內(nèi)調(diào)用系統(tǒng)發(fā)短信也有兩種方式,與打電話是一樣的,唯一的不同是URL中要以“sms:”開頭,這樣就可以告訴系統(tǒng)要調(diào)用的是發(fā)短信功能:
1)WebView方式
使用WebView來跳轉(zhuǎn),把電話號碼通過URL傳遞給WebView,這種方式會跳到短信界面發(fā)送,推薦。
UIWebView *smsWebview =[[UIWebView alloc] init];
NSURL *telURL =[NSURL URLWithString:[NSString stringWithFormat:@"sms:%@",self.phoneNumber.text]];
[smsWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
[self.view addSubview:smsWebview];
2)UIApplication方式
使用UIApplication來跳轉(zhuǎn),這種方式會在后臺直接發(fā)送,不推薦。
NSURL *telURL =[NSURL URLWithString:[NSString stringWithFormat:@"sms:%@",self.phoneNumber.text]];
[[UIApplication sharedApplication] openURL:telURL];
3、發(fā)郵件
發(fā)郵件還是一樣使用WebView的方式,與打電話、發(fā)短信都是一樣的,要改的也是URL中要以“mailto:”開頭,后接郵箱地址:
UIWebView *emailWebview =[[UIWebView alloc] init];
NSURL *emailURL =[NSURL URLWithString:[NSString stringWithFormat:@"mailto:%@",self.email.text]];
[emailWebview loadRequest:[NSURLRequest requestWithURL:emailURL]];
[self.view addSubview:emailWebview];
這樣會跳轉(zhuǎn)到系統(tǒng)自帶的郵箱應(yīng)用去。
在使用這些功能時,應(yīng)該注意正則表達(dá)式檢測手機(jī)號碼、郵箱的格式等。
在這里可以下載我的示例工程:https://github.com/Cloudox/TelTest