IOS开发打电话发短信发邮件
2015-11-24 22:37
721 查看
IOS开发打电话
1、最简单最直接的方式:直接跳到拨号界面
NSURL *url = [NSURL
URLWithString:@"tel://10010"];
[[UIApplication
sharedApplication]
openURL:url];
•缺点
电话打完后,不会自动回到原应用,直接停留在通话记录界面
2、•拨号之前会弹框询问用户是否拨号,拨完后能自动回到原应用
NSURL *url = [NSURL
URLWithString:@"telprompt://10010"];
[[UIApplication
sharedApplication]
openURL:url];
•缺点
因为是私有API,所以可能不会被审核通过
3、创建一个UIWebView来加载URL,拨完后能自动回到原应用
if (_webView ==
nil) {
_webView = [[UIWebView
alloc] initWithFrame:CGRectZero];
}
[_webView
loadRequest:[NSURLRequest
requestWithURL:[NSURL
URLWithString:@"tel://10010"]]];
需要注意的是:这个webView千万不要添加到界面上来,不然会挡住其他界面
发短信有两种方式
1、直接跳到发短信界面,但是不能指定短信内容,而且不能自动回到原应用
NSURL *url = [NSURL
URLWithString:@"sms://10010"];
[[UIApplication
sharedApplication]
openURL:url];
发短信-方法2
•如果想指定短信内容,那就得使用MessageUI框架
•包含主头文件
#import
<MessageUI/MessageUI.h>
•显示发短信的控制器
MFMessageComposeViewController *vc = [[MFMessageComposeViewController
alloc] init];
// 设置短信内容
vc.body =
@"吃饭了没?";
// 设置收件人列表
vc.recipients =
@[@"10010",
@"02010010"];
// 设置代理
vc.messageComposeDelegate =
self;
// 显示控制器
[self
presentViewController:vc animated:YES
completion:nil];
•代理方法,当短信界面关闭的时候调用,发完后会自动回到原应用
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
// 关闭短信界面
[controller dismissViewControllerAnimated:YES
completion:nil];
if (result ==
MessageComposeResultCancelled) {
NSLog(@"取消发送");
} else
if (result == MessageComposeResultSent) {
NSLog(@"已经发出");
} else {
NSLog(@"发送失败");
}
}
发邮件两种方式
1、用自带的邮件客户端,发完邮件后不会自动回到原应用
NSURL *url = [NSURL
URLWithString:@"mailto://10010@qq.com"];
[[UIApplication
sharedApplication]
openURL:url];
发邮件-方法2
•跟发短信的第2种方法差不多,只不过控制器类名叫做:MFMailComposeViewController
•假设发送的邮件内容如右图所示,代码实现看备注
•邮件发送后的代理方法回调,发完后会自动回到原应用
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result
error:(NSError *)error
{
// 关闭邮件界面
[controller dismissViewControllerAnimated:YES
completion:nil];
if (result ==
MFMailComposeResultCancelled) {
NSLog(@"取消发送");
} else
if (result == MFMailComposeResultSent) {
NSLog(@"已经发出");
} else {
NSLog(@"发送失败");
}
}
1、最简单最直接的方式:直接跳到拨号界面
NSURL *url = [NSURL
URLWithString:@"tel://10010"];
[[UIApplication
sharedApplication]
openURL:url];
•缺点
电话打完后,不会自动回到原应用,直接停留在通话记录界面
2、•拨号之前会弹框询问用户是否拨号,拨完后能自动回到原应用
NSURL *url = [NSURL
URLWithString:@"telprompt://10010"];
[[UIApplication
sharedApplication]
openURL:url];
•缺点
因为是私有API,所以可能不会被审核通过
3、创建一个UIWebView来加载URL,拨完后能自动回到原应用
if (_webView ==
nil) {
_webView = [[UIWebView
alloc] initWithFrame:CGRectZero];
}
[_webView
loadRequest:[NSURLRequest
requestWithURL:[NSURL
URLWithString:@"tel://10010"]]];
需要注意的是:这个webView千万不要添加到界面上来,不然会挡住其他界面
发短信有两种方式
1、直接跳到发短信界面,但是不能指定短信内容,而且不能自动回到原应用
NSURL *url = [NSURL
URLWithString:@"sms://10010"];
[[UIApplication
sharedApplication]
openURL:url];
发短信-方法2
•如果想指定短信内容,那就得使用MessageUI框架
•包含主头文件
#import
<MessageUI/MessageUI.h>
•显示发短信的控制器
MFMessageComposeViewController *vc = [[MFMessageComposeViewController
alloc] init];
// 设置短信内容
vc.body =
@"吃饭了没?";
// 设置收件人列表
vc.recipients =
@[@"10010",
@"02010010"];
// 设置代理
vc.messageComposeDelegate =
self;
// 显示控制器
[self
presentViewController:vc animated:YES
completion:nil];
•代理方法,当短信界面关闭的时候调用,发完后会自动回到原应用
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
// 关闭短信界面
[controller dismissViewControllerAnimated:YES
completion:nil];
if (result ==
MessageComposeResultCancelled) {
NSLog(@"取消发送");
} else
if (result == MessageComposeResultSent) {
NSLog(@"已经发出");
} else {
NSLog(@"发送失败");
}
}
发邮件两种方式
1、用自带的邮件客户端,发完邮件后不会自动回到原应用
NSURL *url = [NSURL
URLWithString:@"mailto://10010@qq.com"];
[[UIApplication
sharedApplication]
openURL:url];
发邮件-方法2
•跟发短信的第2种方法差不多,只不过控制器类名叫做:MFMailComposeViewController
•假设发送的邮件内容如右图所示,代码实现看备注
•邮件发送后的代理方法回调,发完后会自动回到原应用
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result
error:(NSError *)error
{
// 关闭邮件界面
[controller dismissViewControllerAnimated:YES
completion:nil];
if (result ==
MFMailComposeResultCancelled) {
NSLog(@"取消发送");
} else
if (result == MFMailComposeResultSent) {
NSLog(@"已经发出");
} else {
NSLog(@"发送失败");
}
}
相关文章推荐
- ios 从系统相册选择多张图片
- iOS跳转到指定页面,而不是简单的返回上一个页面
- 图形变换之使用坐标变换
- iOS视图生命周期
- iOS单例的两种实现
- ios中nsdate与实际时间相隔八小时解决方案
- 【IOS】AutoLayout框架Masonry
- iOS_使用NSURLSessionDataDelegate的代理方法下载数据
- iOS_NSURLSession
- iOS设备下添加button的按下效果
- ios 枚举 位移操作
- IOS响应者链,事件传递和阻断
- iOS学习之场景跳转的三种方式
- iOS中几种数据持久化方案:我要永远地记住你!
- IOSJSBRIGE商品内容模板
- 无法打开包括文件:“iostream.h”
- iOS9 应用之间跳转可以点击左上角进行跳转
- ios jsbrige
- iOS通过CLLocationManager调用地图导航功能
- iOS开发多线程-线程的状态