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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何代码实现跳转safari,phone或message?相关的知识,希望对你有一定的参考价值。

在相应的代码中写入:

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

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

3、调用 自带mail
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://[email protected]"]];

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

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

[[UIApplication sharedApplication] 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何取消safari跳转app

如何将 Brightcove 播放器保留在应用程序中而不跳转到 safari

Safari浏览器上的css变换+宽度+左+顶部过渡跳转

仅在 Chrome/Safari 中滚动嵌入 Vimeo YouTube 或 Flash 时,浮动视差 DIV 背景图像会跳转

iPhone怎么取消Safari跳转app或者AppStore?

iOS 总结APP间跳转的常用以及非常用需求 APP跳转Safari APP跳转APP