IOS 开发,调用打电话,发短信,打开网址
1、调用 自带mail
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hzlzh.com"]];
2、调用 电话phone
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8008808888"]];
3、调用 SMS
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];
4、调用自带 浏览器 safari
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.hzlzh.com"]];
调用phone可以传递号码,调用SMS 只能设定号码,不能初始化SMS内容。
若需要传递内容可以做如下操作:
加入: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")
else if (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");
else if (result == MessageComposeResultSent)
NSLog(@"Message sent");
else
NSLog(@"Message failed");
}
默认发送短信的界面为英文的,解决办法为:
在.xib 中的Localization添加一組chinese就ok了
1、调用 自带mail |
02 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@ "mailto://admin@hzlzh.com" ]]; |
03 |
04 | 2、调用 电话phone |
05 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@ "tel://8008808888" ]]; |
06 | iOS应用内拨打电话结束后返回应用 |
07 | 一般在应用中拨打电话的方式是: |
08 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@ "tel://123456789" ]]; |
09 |
10 | 使用这种方式拨打电话时,当用户结束通话后,iphone界面会停留在电话界面。 |
11 | 用如下方式,可以使得用户结束通话后自动返回到应用: |
12 | UIWebView*callWebview =[[UIWebView alloc] init]; |
13 | NSURL *telURL =[NSURL URLWithString:@ "tel:10086" ]; // 貌似tel:// 或者 tel: 都行 |
14 | [callWebview loadRequest:[NSURLRequest requestWithURL:telURL]]; |
15 | //记得添加到view上 |
16 | [self.view addSubview:callWebview]; |
17 |
18 | 还有一种私有方法:(可能不能通过审核) |
19 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@ "telprompt://10086" ]]; |
20 |
21 | 3、调用 SMS |
22 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@ "sms://800888" ]]; |
23 |
24 | 4、调用自带 浏览器 safari |
25 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@ "http://www.hzlzh.com" ]]; |
26 |
27 | 调用phone可以传递号码,调用SMS 只能设定号码,不能初始化SMS内容。 |
28 |
29 | 若需要传递内容可以做如下操作: |
30 | 加入:MessageUI.framework |
31 |
32 | #import <MessageUI/MFMessageComposeViewController.h> |
33 |
34 | 实现代理:MFMessageComposeViewControllerDelegate |
35 |
36 |
37 |
38 | 调用sendSMS函数 |
39 | //内容,收件人列表 |
40 | - ( void )sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients |
41 | { |
42 |
43 | MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; |
44 |
45 | if ([MFMessageComposeViewController canSendText]) |
46 |
47 | { |
48 |
49 | controller.body = bodyOfMessage; |
50 |
51 | controller.recipients = recipients; |
52 |
53 | controller.messageComposeDelegate = self; |
54 |
55 | [self presentModalViewController:controller animated:YES]; |
56 |
57 | } |
58 |
59 | } |
60 |
61 | // 处理发送完的响应结果 |
62 | - ( void )messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result |
63 | { |
64 | [self dismissModalViewControllerAnimated:YES]; |
65 | |
66 | if (result == MessageComposeResultCancelled) |
67 | NSLog(@ "Message cancelled" ) |
68 | else if (result == MessageComposeResultSent) |
69 | NSLog(@ "Message sent" ) |
70 | else |
71 | NSLog(@ "Message failed" ) |
72 | } |