標籤:ios 打電話 發簡訊 發郵件
摘要:
在應用程式內,調用系統的功能來實現打電話、發簡訊和發郵件,通過電話號碼或者郵箱,直接跳轉到系統的功能介面。
PS:調試好像只能真機調試,模擬器沒有反應,真機就可以跳轉,不知道是不是必須真機,但方法肯定是可行的。
1、打電話
應用內調用系統打電話有兩種方式:
1)WebView方式
使用WebView來跳轉,把電話號碼通過URL傳遞給WebView,這種方式會彈出是否要撥打的提示,可以選擇撥打或者不撥打,打完也會自動回到應用介面,推薦。
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:”開頭,後接電話號碼,系統就會識別為調用撥號器了。
2)UIApplication方式
使用UIApplication來跳轉,同樣傳遞和上一種方式同樣的URL,這種方式不會彈出提示問你確認撥打與否,而是直接撥打,打完也會停在通訊錄那,不會回到應用,不推薦。
NSURL *telURL =[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",self.phoneNumber.text]];[[UIApplication sharedApplication] openURL:telURL];
2、發簡訊
應用內調用系統發簡訊也有兩種方式,與打電話是一樣的,唯一的不同是URL中要以“sms:”開頭,這樣就可以告訴系統要調用的是發簡訊功能:
1)WebView方式
使用WebView來跳轉,把電話號碼通過URL傳遞給WebView,這種方式會跳到簡訊介面發送,推薦。
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來跳轉,這種方式會在後台直接發送,不推薦。
NSURL *telURL =[NSURL URLWithString:[NSString stringWithFormat:@"sms:%@",self.phoneNumber.text]];[[UIApplication sharedApplication] openURL:telURL];
3、發郵件
發郵件還是一樣使用WebView的方式,與打電話、發簡訊都是一樣的,要改的也是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];
這樣會跳轉到系統內建的郵箱應用去。
在使用這些功能時,應該注意Regex檢測手機號碼、郵箱的格式等。
在這裡可以下載我的樣本工程:https://github.com/Cloudox/TelTest
轉載請註明出處,謝謝
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
iOS應用調用系統打電話、發簡訊和發郵件功能