iOS开发

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

2018-04-11  本文已影响21人  风规自远

在相应的代码中写入:

1、调用 电话phone

[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"tel://

4008008288"]];

2、调用自带 浏览器 safari

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.abt.com"]];

3、调用 自带mail

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@abt.com"]];

4、调用 SMS

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];

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

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

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

若需要传递内容可以做如下操作:

加入:MessageUI.framework

#import

实现代理:MFMessageComposeViewControllerDelegate

调用sendSMS函数

//内容,收件人列表

- (void)sendSMS:(NSString *)bodyOfMessagerecipientList:(NSArray *)recipients {

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

    if ([MFMessageComposeViewControllercanSendText]) {

        controller.body=bodyOfMessage;

        controller.recipients=recipients;

        controller.messageComposeDelegate=self;

        [selfpresentModalViewController:controlleranimated:YES];

    }

}

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

-(void)messageComposeViewController:(MFMessageComposeViewController*)controllerdidFinishWithResult:(MessageComposeResult)result

{

[selfdismissModalViewControllerAnimated:YES];

if(result==MessageComposeResultCancelled)

    NSLog(@"Messagecancelled")

elseif(result==MessageComposeResultSent)

    NSLog(@"Messagesent")

else

    NSLog(@"Messagefailed")

}

发送邮件的为:

导入#import

实现代理:MFMailComposeViewControllerDelegate

//发送邮件

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

MFMailComposeViewController*controller=[[[MFMailComposeViewControlleralloc]init]autorelease];

if([MFMailComposeViewControllercanSendMail])

{

[controllersetSubject:subject];

[controllersetMessageBody:contentisHTML:NO];

controller.mailComposeDelegate=self;

[selfpresentModalViewController:controlleranimated:YES];

}

}

//邮件完成处理

-(void)mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult:(MFMailComposeResult)resulterror:(NSError*)error{

[selfdismissModalViewControllerAnimated:YES];

if(result==MessageComposeResultCancelled)

NSLog(@"Messagecancelled");

elseif(result==MessageComposeResultSent)

NSLog(@"Messagesent");

else

NSLog(@"Messagefailed");

}

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

调用sendSMS函数

//内容,收件人列表

-(void)sendSMS:(NSString*)bodyOfMessagerecipientList:(NSArray*)recipients

{

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

if([MFMessageComposeViewControllercanSendText])

{

controller.body=bodyOfMessage;

controller.recipients=recipients;

controller.messageComposeDelegate=self;

[selfpresentModalViewController:controlleranimated:YES];

}

}

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

-(void)messageComposeViewController:(MFMessageComposeViewController*)controllerdidFinishWithResult:(MessageComposeResult)result

{

[selfdismissModalViewControllerAnimated:YES];

if(result==MessageComposeResultCancelled)

NSLog(@"Messagecancelled")

elseif(result==MessageComposeResultSent)

NSLog(@"Messagesent")

else

NSLog(@"Messagefailed")

}

发送邮件的为:

导入#import

实现代理:MFMailComposeViewControllerDelegate

//发送邮件

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

MFMailComposeViewController*controller=[[[MFMailComposeViewControlleralloc]init]autorelease];

if([MFMailComposeViewControllercanSendMail])

{

[controllersetSubject:subject];

[controllersetMessageBody:contentisHTML:NO];

controller.mailComposeDelegate=self;

[selfpresentModalViewController:controlleranimated:YES];

}

}

//邮件完成处理

-(void)mailComposeController:(MFMailComposeViewController*)controllerdidFinishWithResult:(MFMailComposeResult)resulterror:(NSError*)error{

[selfdismissModalViewControllerAnimated:YES];

if(result==MessageComposeResultCancelled)

NSLog(@"Messagecancelled");

elseif(result==MessageComposeResultSent)

NSLog(@"Messagesent");

else

NSLog(@"Messagefailed");

}

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

上一篇下一篇

猜你喜欢

热点阅读