首页 > 代码库 > 如何代码实现跳转safari,phone或message?

如何代码实现跳转safari,phone或message?

在相应的代码中写入:

1、调用 电话phone
 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"tel://4008008288"]];

2、调用自带 浏览器 safari
[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"http://www.abt.com"]];

3、调用 自带mail
[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"mailto://admin@abt.com"]];

4、调用 SMS
[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"sms://800888"]];

5,跳转到系统设置相关界面

[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

 

其中,发短信,发Email的功能只能填写要发送的地址或号码,无法初始化发送内容,如果想实现内容的话,还需要更复杂一些,实现其各自的委托方法。

若需要传递内容可以做如下操作:
加入:MessageUI.framework
 
#import <MessageUI/MFMessageComposeViewController.h>
 
实现代理:MFMessageComposeViewControllerDelegate

 

 调用sendSMS函数  

//内容,收件人列表  

 - (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients  

 {  

 

   MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];    

  if([MFMessageComposeViewController canSendText])  

 {       

    controller.body = bodyOfMessage;     

    controller.recipients = recipients;  

   controller.messageComposeDelegate = self;  

  [self presentModalViewController:controller animated:YES];  

  }     

}

// 处理发送完的响应结果  

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

{  

[self dismissModalViewControllerAnimated:YES]; 

if (result == MessageComposeResultCancelled)  

 NSLog(@"Message cancelled") 

elseif (result == MessageComposeResultSent)  

 NSLog(@"Message sent")   

else

 NSLog(@"Message failed")    

}  

发送邮件的为:  

导入#import <MessageUI/MFMailComposeViewController.h>  

实现代理:MFMailComposeViewControllerDelegate  

//发送邮件  

-(void)sendMail:(NSString *)subject content:(NSString *)content{  

    MFMailComposeViewController *controller = [[[MFMailComposeViewController alloc] init] autorelease];  if([MFMailComposeViewController canSendMail])  

{  

        [controller setSubject:subject];  

        [controller setMessageBody:content isHTML:NO];  

        controller.mailComposeDelegate = self;  

        [self presentModalViewController:controller animated:YES];  

    }      

}  

//邮件完成处理  

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

    [self dismissModalViewControllerAnimated:YES]; 

if (result == MessageComposeResultCancelled)  

   NSLog(@"Message cancelled");

elseif (result == MessageComposeResultSent)  

       NSLog(@"Message sent");  

else       NSLog(@"Message failed");    

}  

默认发送短信的界面为英文的,解决办法为:在.xib 中的Localization添加一組chinese

如何代码实现跳转safari,phone或message?