發(fā)送短信一共5種
1.發(fā)送純文本
2.發(fā)送本地圖片+文本
3.發(fā)送網(wǎng)絡(luò)圖片+文本
4.發(fā)送本地視頻+文本
5.發(fā)送網(wǎng)絡(luò)視頻+文本
#import "ViewController.h"
#import "HSDownloadManager.h"
#import <MessageUI/MessageUI.h>
NSString * const downloadUrl1 = @"https://download.91playmate.cn/5a2d71209c3250e5f073fcecbcbe7eab.mp4";
@interface ViewController ()<MFMessageComposeViewControllerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, [UIScreen mainScreen].bounds.size.width-20, 42)];
label.text = @"手機(jī)號:136 發(fā)送內(nèi)容:輕輕的我走了漓滔,正如我輕輕的來编饺,不帶走一片云彩";
label.numberOfLines = 2;
[self.view addSubview:label];
UIButton *btn1 = [[UIButton alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(label.frame)+20, 150, 30)];
btn1.backgroundColor = [UIColor blueColor];
[btn1 setTitle:@"純文本" forState:UIControlStateNormal];
[self.view addSubview:btn1];
[btn1 addTarget:self action:@selector(sendTextAction) forControlEvents:UIControlEventTouchUpInside];
UIButton *btn2 = [[UIButton alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(btn1.frame)+20, 150, 30)];
btn2.backgroundColor = [UIColor blueColor];
[btn2 setTitle:@"本地文本+圖片" forState:UIControlStateNormal];
[self.view addSubview:btn2];
[btn2 addTarget:self action:@selector(sendLocationTextImageAction) forControlEvents:UIControlEventTouchUpInside];
UIButton *btn3 = [[UIButton alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(btn2.frame)+20, 150, 30)];
btn3.backgroundColor = [UIColor blueColor];
[btn3 setTitle:@"本地文本+視頻" forState:UIControlStateNormal];
[self.view addSubview:btn3];
[btn3 addTarget:self action:@selector(sendLocationTextVideoAction) forControlEvents:UIControlEventTouchUpInside];
UIButton *btn4 = [[UIButton alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(btn3.frame)+20, 150, 30)];
btn4.backgroundColor = [UIColor blueColor];
[btn4 setTitle:@"網(wǎng)上文本+圖片" forState:UIControlStateNormal];
[self.view addSubview:btn4];
[btn4 addTarget:self action:@selector(sendInternetTextImageAction) forControlEvents:UIControlEventTouchUpInside];
UIButton *btn5 = [[UIButton alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(btn4.frame)+20, 150, 30)];
btn5.backgroundColor = [UIColor blueColor];
[btn5 setTitle:@"網(wǎng)上文本+視頻" forState:UIControlStateNormal];
[self.view addSubview:btn5];
[btn5 addTarget:self action:@selector(sendInternetTextVideoAction) forControlEvents:UIControlEventTouchUpInside];
}
//發(fā)送純文本
-(void)sendTextAction
{
if ([MFMessageComposeViewController canSendAttachments]) {
MFMessageComposeViewController * messageVC = [[MFMessageComposeViewController alloc]init];
//手機(jī)號
messageVC.recipients = @[@"136"];
//發(fā)送的內(nèi)容
messageVC.body = @"輕輕的我走了,正如我輕輕的來响驴,不帶走一片云彩";
messageVC.messageComposeDelegate = self;
/** 取消按鈕的顏色(附帶,可不寫) */
messageVC.navigationBar.tintColor = [UIColor redColor];
[self presentViewController:messageVC animated:YES completion:nil];
}else{
NSLog(@"模擬器不支持發(fā)送短信");
}
}
//發(fā)送本地圖片+文本
-(void)sendLocationTextImageAction
{
if ([MFMessageComposeViewController canSendAttachments]) {
MFMessageComposeViewController * messageVC = [[MFMessageComposeViewController alloc]init];
//手機(jī)號
messageVC.recipients = @[@"136"];
//發(fā)送的內(nèi)容
messageVC.body = @"輕輕的我走了透且,正如我輕輕的來,不帶走一片云彩";
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"jpg"];
if ([messageVC addAttachmentURL:[NSURL fileURLWithPath:path] withAlternateFilename:nil])
{
NSLog(@"添加成功");
}else{
NSLog(@"失敗");
}
messageVC.messageComposeDelegate = self;
/** 取消按鈕的顏色(附帶,可不寫) */
messageVC.navigationBar.tintColor = [UIColor redColor];
[self presentViewController:messageVC animated:YES completion:nil];
}else{
NSLog(@"模擬器不支持發(fā)送短信");
}
}
//發(fā)送本地視頻+文本
-(void)sendLocationTextVideoAction
{
if ([MFMessageComposeViewController canSendAttachments]) {
MFMessageComposeViewController * messageVC = [[MFMessageComposeViewController alloc]init];
//手機(jī)號
messageVC.recipients = @[@"136"];
//發(fā)送的內(nèi)容
messageVC.body = @"輕輕的我走了豁鲤,正如我輕輕的來秽誊,不帶走一片云彩";
NSString *path = [[NSBundle mainBundle] pathForResource:@"fangjian" ofType:@"mp4"];
if ([messageVC addAttachmentURL:[NSURL fileURLWithPath:path] withAlternateFilename:nil])
{
NSLog(@"添加成功");
}else{
NSLog(@"失敗");
}
messageVC.messageComposeDelegate = self;
/** 取消按鈕的顏色(附帶,可不寫) */
messageVC.navigationBar.tintColor = [UIColor redColor];
[self presentViewController:messageVC animated:YES completion:nil];
}else{
NSLog(@"模擬器不支持發(fā)送短信");
}
}
//發(fā)送網(wǎng)上文本+圖片
-(void)sendInternetTextImageAction
{
//document路徑
NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSLog(@"保存路徑:%@",documentsDirectoryPath);
//Save Image to Directory
[self saveImage:[self getImageFromURL:@"http://pic37.nipic.com/20140113/8800276_184927469000_2.png"] withFileName:@"fangjian" ofType:@"png" inDirectory:documentsDirectoryPath];
if ([MFMessageComposeViewController canSendAttachments]) {
MFMessageComposeViewController * messageVC = [[MFMessageComposeViewController alloc]init];
//手機(jī)號
messageVC.recipients = @[@"136"];
//發(fā)送的內(nèi)容
messageVC.body = @"輕輕的我走了,正如我輕輕的來琳骡,不帶走一片云彩";
NSString * path = [documentsDirectoryPath stringByAppendingPathComponent:@"fangjian.png"];
if ([messageVC addAttachmentURL:[NSURL fileURLWithPath:path] withAlternateFilename:nil])
{
NSLog(@"添加成功");
}else{
NSLog(@"失敗");
}
messageVC.messageComposeDelegate = self;
/** 取消按鈕的顏色(附帶,可不寫) */
messageVC.navigationBar.tintColor = [UIColor redColor];
[self presentViewController:messageVC animated:YES completion:nil];
}else{
NSLog(@"模擬器不支持發(fā)送短信");
}
}
//發(fā)送網(wǎng)上文本+視頻
-(void)sendInternetTextVideoAction
{
[[HSDownloadManager sharedInstance] download:downloadUrl1 progress:^(NSInteger receivedSize, NSInteger expectedSize, CGFloat progress) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"正在下載===%.f%%",progress * 100);
});
} state:^(DownloadState state) {
dispatch_async(dispatch_get_main_queue(), ^{
if (state == DownloadStateCompleted) {
[self mainSendInternetVideo];
}
});
}];
}
-(void)mainSendInternetVideo
{
if ([MFMessageComposeViewController canSendAttachments]) {
MFMessageComposeViewController * messageVC = [[MFMessageComposeViewController alloc]init];
messageVC.view.tag =500;
//手機(jī)號
messageVC.recipients = @[@"136"];
//發(fā)送的內(nèi)容
messageVC.body = @"輕輕的我走了锅论,正如我輕輕的來,不帶走一片云彩";
// 獲取Caches目錄路徑
NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
NSString *path = [cachesDir stringByAppendingPathComponent:@"FangJian/xiaoshiping.mp4"];
if ([messageVC addAttachmentURL:[NSURL fileURLWithPath:path] withAlternateFilename:nil])
{
NSLog(@"添加成功");
}else{
NSLog(@"失敗");
}
messageVC.messageComposeDelegate = self;
/** 取消按鈕的顏色(附帶,可不寫) */
messageVC.navigationBar.tintColor = [UIColor redColor];
[self presentViewController:messageVC animated:YES completion:nil];
}else{
NSLog(@"模擬器不支持發(fā)送短信");
}
}
#pragma mark --------------下載圖片到沙盒中------------------
-(UIImage *) getImageFromURL:(NSString *)fileURL {
UIImage * result;
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
result = [UIImage imageWithData:data];
return result;
}
-(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
//清空歷史圖片
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]]]) {
[fileManager removeItemAtPath:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] error:nil];
}
if ([[extension lowercaseString] isEqualToString:@"png"]) {
[UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil];
} else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
[UIImageJPEGRepresentation(image, 1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil];
} else {
//ALog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
NSLog(@"文件后綴不認(rèn)識");
}
}
#pragma mark - MFMessageComposeViewControllerDelegate
/**
* 協(xié)議方法,在信息界面處理完信息結(jié)果時調(diào)用(比如點擊發(fā)送,取消發(fā)送,發(fā)送失敗)
*
* @param controller 信息控制器
* @param result 返回的信息發(fā)送成功與否狀態(tài)
*/
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
/** 發(fā)送完信息就回到原程序*/
[self dismissViewControllerAnimated:YES completion:nil];
if (controller.view.tag ==500) {
//刪除下載到沙盒中的視頻
[[HSDownloadManager sharedInstance] deleteFile:downloadUrl1];
}
switch (result) {
case MessageComposeResultSent:
NSLog(@"發(fā)送成功");
break;
case MessageComposeResultFailed:
NSLog(@"發(fā)送失敗");
break;
case MessageComposeResultCancelled:
NSLog(@"發(fā)送取消");
default:
break;
}
}