kevin 7 年之前
父节点
当前提交
039a05a422

+ 2 - 18
WadeMobileFunc/WadeMobileFunc/WDFMobileContacts.m

@ -210,19 +210,11 @@
210 210
    ABMultiValueRef phones = ABRecordCopyValue(people, kABPersonPhoneProperty);
211 211
    for (NSInteger i = 0, len = ABMultiValueGetCount(phones); i < len; i++)
212 212
    {
213
        NSString *phoneLabel = (__bridge NSString *)(ABMultiValueCopyLabelAtIndex(phones, i));
214
        //在模拟器中,去除干扰符号
215
        if([phoneLabel hasPrefix:@"_$!<"] && [phoneLabel hasSuffix:@">!$_"])
216
            phoneLabel = [phoneLabel substringWithRange:NSMakeRange(4, phoneLabel.length - 8)];
217
        
213
        NSString *phoneLabel = (__bridge NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phones, i));
218 214
        NSString *phoneNumber = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(phones, i));
219 215
        
220 216
        [phoneDic setObject:phoneNumber forKey:phoneLabel];
221 217
    }
222
    //3.2.将结果集转译成JSON串
223
//    NSString *phoneNumStr = [WDJsonHelper toJSONString:phoneDic];
224
    //3.3.替换所有回车符
225
//    NSString *phoneNum = [phoneNumStr stringByReplacingOccurrencesOfString:@"\n" withString:@""];
226 218
    [dic put:@"phoneNumber" object:phoneDic];
227 219
    
228 220
    //4.获取当前联系人的公司
@ -234,19 +226,11 @@
234 226
    ABMultiValueRef emailArr = ABRecordCopyValue(people, kABPersonEmailProperty);
235 227
    for (NSInteger i = 0, len = ABMultiValueGetCount(emailArr); i < len; i++)
236 228
    {
237
        NSString *emailLabel = (__bridge NSString *)(ABMultiValueCopyLabelAtIndex(emailArr, i));
238
        //在模拟器中,去除干扰符号
239
        if([emailLabel hasPrefix:@"_$!<"] && [emailLabel hasSuffix:@">!$_"])
240
            emailLabel = [emailLabel substringWithRange:NSMakeRange(4, emailLabel.length - 8)];
241
        
229
        NSString *emailLabel = (__bridge NSString *)ABAddressBookCopyLocalizedLabel((ABMultiValueCopyLabelAtIndex(emailArr, i)));
242 230
        NSString *emailNumber = (__bridge NSString *)(ABMultiValueCopyValueAtIndex(emailArr, i));
243 231
        
244 232
        [emailDic setObject:emailNumber forKey:emailLabel];
245 233
    }
246
    //5.2.将结果集转译成JSON串
247
//    NSString *emailStr = [WDJsonHelper toJSONString:emailDic];
248
//    //5.3.替换所有回车符
249
//    NSString *email = [emailStr stringByReplacingOccurrencesOfString:@"\n" withString:@""];
250 234
    [dic put:@"email" object:emailDic];
251 235
    
252 236
    return dic;

+ 82 - 11
WadeMobileFunc/WadeMobileFunc/WDFMobileMail.m

@ -8,6 +8,8 @@
8 8
9 9
#import "WDFMobileMail.h"
10 10
#import <MessageUI/MessageUI.h>
11
#import <WadeMobile/WDFileUtil.h>
12
#import <WadeMobile/WDJsonHelper.h>
11 13
12 14
//实现 MFMailComposeViewControllerDelegate
13 15
@interface WDFMobileMail() <MFMailComposeViewControllerDelegate>
@ -22,14 +24,76 @@
22 24
 */
23 25
- (void) shareImageBymail:(NSArray *)args
24 26
{
25
    NSData *imageData = UIImagePNGRepresentation([UIImage imageNamed: @"icon.png"]);
27
    //1.获取参数
28
    NSDictionary *dic;
29
    @try {
30
        dic = [WDJsonHelper toDictionary:args[0]];
31
    } @catch (NSException *exception) {
32
        ;
33
    }
34
    
26 35
    MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init]; //实例化邮件VC
27 36
    mailPicker.mailComposeDelegate = self;
28 37
    
29
    [mailPicker setSubject: @"我是主题,主题,主,题....."];                              //设置主题
30
    [mailPicker setToRecipients: @[@"second@example.com",@"third@example.com"]];    //添加发送者,是个数组
31
    [mailPicker addAttachmentData: imageData mimeType: @"" fileName: @"icon.png"];  //添加图片
32
    [mailPicker setMessageBody:@"我是邮件的正文" isHTML:YES];                          //添加正文
38
    if(![MFMailComposeViewController canSendMail]) {
39
        UIAlertView *wAlertView = [[UIAlertView alloc]initWithTitle:@"不能发送邮件"
40
                                                            message:@"请检查邮件设置"
41
                                                           delegate:nil
42
                                                  cancelButtonTitle:@"确定"
43
                                                  otherButtonTitles:nil];
44
        [wAlertView show];
45
        return;
46
    }
47
    
48
    //设置主题
49
    NSString *subject = [dic objectForKey:@"subject"];
50
    if(!subject){
51
        [super error:@"没有获取到主题信息!"];
52
        return;
53
    }
54
    [mailPicker setSubject: subject];
55
    
56
    //添加收件人
57
    NSString *receiver = [dic objectForKey:@"receiver"];
58
    if(!receiver){
59
        [super error:@"没有获取到收件人!"];
60
        return;
61
    }
62
    NSArray *toRecipients;
63
    @try{
64
        toRecipients = [WDJsonHelper toArray:receiver];
65
    }@catch(NSException *err){
66
        [super error:@"没有获取到收件人!"];
67
        return;
68
    }
69
    [mailPicker setToRecipients: toRecipients];
70
    
71
    //添加抄送人
72
    NSString *others = [dic objectForKey:@"receiver"];
73
    if(others){
74
        NSArray *ccRecipients;
75
        @try{
76
            ccRecipients = [WDJsonHelper toArray:others];
77
        }@catch(NSException *err){
78
        }
79
        [mailPicker setCcRecipients:ccRecipients];
80
    }
81
    
82
    //添加附件
83
    NSString *pathStr = [dic objectForKey:@"attachment"];
84
    if(pathStr){
85
        NSString *filePath = pathStr, *fileName = [filePath stringByDeletingLastPathComponent];
86
        NSData *fileData = [NSData dataWithContentsOfFile:filePath];
87
        [mailPicker addAttachmentData:fileData mimeType:[WDFileUtil getMimeType:filePath] fileName:fileName];
88
    }
89
    
90
    //添加正文
91
    NSString *content = [dic objectForKey:@"body"];
92
    if(!content){
93
        [super error:@"没有获取到正文信息!"];
94
        return;
95
    }
96
    [mailPicker setMessageBody:content isHTML:NO];
33 97
    
34 98
    //将mailController弹出
35 99
    UIViewController *vc = [self getViewController];
@ -45,11 +109,12 @@
45 109
 */
46 110
- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
47 111
{
48
    NSString *msg;
112
    NSString *msg, *errMsg;
113
    
49 114
    switch (result)
50 115
    {
51 116
        case MFMailComposeResultCancelled:
52
            msg = @"邮件发送取消";
117
            errMsg = @"邮件发送取消";
53 118
            break;
54 119
        case MFMailComposeResultSaved:
55 120
            msg = @"邮件保存成功";
@ -58,7 +123,7 @@
58 123
            msg = @"邮件发送成功";
59 124
            break;
60 125
        case MFMailComposeResultFailed:
61
            msg = @"邮件发送失败";
126
            errMsg = @"邮件发送失败";
62 127
            break;
63 128
        default:
64 129
            break;
@ -66,16 +131,22 @@
66 131
    
67 132
    //将mailController弹出
68 133
    UIViewController *vc = [self getViewController];
69
    [vc dismissViewControllerAnimated:YES completion:nil];
134
    [vc dismissViewControllerAnimated:YES completion:^{
135
        if(error || errMsg){
136
            [self error: error ? [error description] : errMsg];
137
        }else{
138
            [self callback:msg];
139
        }
140
    }];
70 141
}
71 142
72 143
/**
73 144
 *  短信行为回调
74 145
 *
75 146
 *  @param controller  视图控制器对象管理邮件组合视图。
76
 *  @param result     用户返回结果
147
 *  @param result      用户返回结果
77 148
 */
78
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
149
- (void) messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
79 150
{
80 151
    //将mailController弹出
81 152
    UIViewController *vc = [self getViewController];

+ 2 - 1
display-center/Res/config/mobile-action.xml

@ -81,7 +81,8 @@
81 81
    <action name="httpDownloadFile" class="WDFMobileNetwork" method="httpDownloadFile"/>
82 82
    
83 83
    <!-- contacts -->
84
    <action name="getContacts"   class="WDFMobileContacts"   method="getContacts"/>
84
    <action name="getContacts"      class="WDFMobileContacts"   method="getContacts"/>
85
    <action name="shareImageBymail" class="WDFMobileMail"       method="shareImageBymail"/>
85 86
    
86 87
    <!--  Camear -->
87 88
    <action name="takePicture"   class="WDFCamera"   method="takePicture"/>