通過一句話通路網頁、打電話、發送郵件:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
// [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];
// [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://10086"]];
// [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://[email protected]"]];
當然模拟器中是無法打電話的。
在4.0 之後的SDK中有一個新的類可以用于發送短信、郵件。。。
首先檢查系統中是否存在這個類,并且這個類是否可用:是否具有打電話的功能
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
// 模拟器:
if (mailClass != nil)
{
// We must always check whether the current device is configured for sending emails
if ([mailClass canSendMail])
{
NSLog(@"具有發郵件功能");
}
else
{
NSLog(@"不支援發郵件功能");
}
}
else
{
NSLog(@"系統版本必須在4.0以上");
}
當然在之前我們肯定是要添加頭檔案以及監聽方法:
#import <MessageUI/MessageUI.h>
@interface ViewController ()<MFMailComposeViewControllerDelegate>
設定發郵件的各種屬性
-(void)sendmessage{
MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
mail.mailComposeDelegate = self;
[mail setSubject:@"郵件主題"]; //設定郵件的主題
[mail setMessageBody:@"郵件内容!" isHTML:NO];
if ([MFMailComposeViewController canSendMail]) {
[self presentViewController:mail animated:YES completion:^(){
}];
}
}
發郵件界面類似:
郵件發送之後還有回調方法:
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error {
switch (result)
{
case MFMailComposeResultCancelled:
可以根據傳回值類型确定是否需要進行進一步的操作。