• 邮件、短信、相机、图库的使用


    -.首先导入MessageUI.framework框架

    二.导入头文件#import <MessageUI/MessageUI.h>和代理方FMailComposeViewControllerDelegate,

    MFMessageComposeViewControllerDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate

    三. .h文件

    #import <UIKit/UIKit.h>
    #import <MessageUI/MessageUI.h>
    
    @interface ViewController : UIViewController<MFMailComposeViewControllerDelegate,MFMessageComposeViewControllerDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
    @property (strong, nonatomic) IBOutlet UIButton *Email;
    @property (strong, nonatomic) IBOutlet UIButton *note;
    @property (strong, nonatomic) IBOutlet UIButton *camera;
    @property (strong, nonatomic) IBOutlet UIButton *mapDepot;
    - (IBAction)mailDelivery:(id)sender;
    - (IBAction)noteDelivery:(id)sender;
    - (IBAction)useTheCamera:(id)sender;
    - (IBAction)galleryUse:(id)sender;
    


    四. .m文件

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    	// Do any additional setup after loading the view, typically from a nib.
        UIImageView *imageView = [[UIImageView alloc] init];
        imageView.frame = CGRectMake(100, 20, 120, 120);
        imageView.backgroundColor = [UIColor greenColor];
        imageView.tag = 101;
        [self.view addSubview:imageView];
    
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    
    //发送邮件
    - (IBAction)mailDelivery:(id)sender {
        //  推断设备是否能否够发送邮件
        Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
        NSString * feedbackMsg;
        if (!mailClass) {
            
            feedbackMsg = @"当前系统版本号不支持应用内发送邮件功能";
            UIAlertView *alertView =
            [[UIAlertView alloc] initWithTitle:@"提示"
                                       message:feedbackMsg
                                      delegate:nil
                             cancelButtonTitle:@"确定"
                             otherButtonTitles:nil];
            
            [alertView show];
            
            
        }else if(![mailClass canSendMail])
        {
            feedbackMsg = @"您没有设置邮件账户";
            UIAlertView *alertView =
            [[UIAlertView alloc] initWithTitle:@"提示"
                                       message:feedbackMsg
                                      delegate:nil
                             cancelButtonTitle:@"确定"
                             otherButtonTitles:nil];
            
            [alertView show];
            
            
        }else{
            [self sendFeedBackMail];
        }
        
        
    }
    //发送短信
    - (IBAction)noteDelivery:(id)sender {
        BOOL judge = [MFMessageComposeViewController canSendText];
        if (judge) {
            MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc]init];
            picker.messageComposeDelegate = self;
            //收件人
            picker.recipients = @[@"186*******"];
            //内容
            picker.body = @"非常高兴见到你!";
            [self presentViewController:picker animated:YES completion:nil];
        }else
        {
           
            UIAlertView *alertView =
            [[UIAlertView alloc] initWithTitle:@"提示"
                                       message:@"系统不具备此项功能!"
                                      delegate:nil
                             cancelButtonTitle:@"确定"
                             otherButtonTitles:nil];
            
            [alertView show];
    
            
        }
    }
    //使用相机功能
    - (IBAction)useTheCamera:(id)sender {
        
        // UIImagePickerControllerCameraDeviceRear 后置摄像头
        // UIImagePickerControllerCameraDeviceFront 前置摄像头
        BOOL isCamera = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
        if (!isCamera) {
            NSLog(@"没有摄像头");
            return ;
        }
        
        UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        imagePicker.delegate = self;
        // 编辑模式
        imagePicker.allowsEditing = YES;
        [self  presentViewController:imagePicker animated:YES completion:nil];
    }
    //使用图库
    - (IBAction)galleryUse:(id)sender {
        UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
        imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        imagePicker.delegate = self;
        [self  presentViewController:imagePicker animated:YES completion:^{
        }];
    }
    #pragma mark--------------使用相机----------------
    
    // 选中照片
    
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
        NSLog(@"%@", info);
        UIImageView  *imageView = (UIImageView *)[self.view viewWithTag:101];
        // UIImagePickerControllerOriginalImage 原始图片
        // UIImagePickerControllerEditedImage 编辑后图片
        UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
        imageView.image = image;
        [picker dismissViewControllerAnimated:YES completion:NULL];
        
    }
    
    
    
    // 取消相冊
    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
        [picker dismissViewControllerAnimated:YES completion:NULL];
        
    }
    
    #pragma mark--------------发送短信----------------
    -(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    {
        NSString *title = @"邮件发送提醒";
        NSString *msg;
        switch (result) {
            case MessageComposeResultCancelled:
                msg = @"短信取消!";
                [self alertWithTitle:title msg:msg];
                break;
            case MessageComposeResultSent:
                msg = @"短信成功发送!";
                [self alertWithTitle:title msg:msg];
                break;
            case MessageComposeResultFailed:
                msg = @"短信发送失败!";
                [self alertWithTitle:title msg:msg];
                break;
               }
        [self dismissViewControllerAnimated:YES completion:nil];
    }
    
    
    #pragma mark--------------发送邮件----------------
    
    -(void)sendFeedBackMail
    {
        //是否创建邮件
        BOOL judge = [MFMailComposeViewController canSendMail];
        if (judge) {
            //创建邮件
            MFMailComposeViewController *pick = [[MFMailComposeViewController alloc]init];
            //标题
            [pick setSubject:@"意见反馈"];
            //邮件地址
            NSArray *address = [NSArray arrayWithObject:@"请填上自己的邮箱"];
            [pick setToRecipients:address];
            //内容
            NSString *message = @"你好!";
            pick.mailComposeDelegate = self;
            [pick setMessageBody:message isHTML:NO];
            //返回
            [self presentViewController:pick animated:YES completion:NULL];
        }
    }
    //代理
    -(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
    {
        NSString *title = @"邮件发送提醒";
        NSString *msg;
        switch (result) {
            case MFMailComposeResultCancelled:
                msg = @"邮件取消!";
                [self alertWithTitle:title msg:msg];
                break;
            case MFMailComposeResultSaved:
                msg = @"邮件保存成功!";
                [self alertWithTitle:title msg:msg];
                break;
            case MFMailComposeResultSent:
                msg = @"邮件发送成功!";
                [self alertWithTitle:title msg:msg];
                break;
                
            case MFMailComposeResultFailed:
                msg =@"邮件发送失败!";
                [self alertWithTitle:title msg:msg];
                break;
        }
        [self dismissViewControllerAnimated:YES completion:NULL];
    }
    - (void)alertWithTitle:(NSString *)_title_ msg:(NSString *)msg{
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:_title_
                                                        message:msg
                                                       delegate:nil
                                              cancelButtonTitle:@"好"
                                              otherButtonTitles:nil];
        [alert show];
    }
    


  • 相关阅读:
    C# 生成 DataMatrix 格式的二维码
    Matlab如何连接Oracle数据库及基本操作
    Matlab调用返回游标的存储过程的分析和处理
    Matlab 调用Oracle数据库
    安装discourse
    设置HttponlyCookie解决mshtml编程无法获取验证码图片流
    C#通过COM组件操作IE浏览器(四):实用代码总结
    C#通过COM组件操作IE浏览器(三):了解IHTMLDocument2
    C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录
    C#通过COM组件操作IE浏览器(一):打开浏览器跳转到指定网站
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10966847.html
  • Copyright © 2020-2023  润新知