`
wsqwsq000
  • 浏览: 684979 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

iphone开发中发送短信

 
阅读更多

 

 

iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewControllerDelegate,提供了发送短信的接口,可以像发送邮件那样不用跳出程序来发送短信. 介绍可参阅Message UI
Framework Reference

一些笔记:


MFMessageComposeViewController

  • 提供了操作界面
  • 使用前必须检查canSendText方法,若返回NO则不应将这个controller展现出来,而应该提示用户不支持发送短信功能.
  • 界面不能自行定制
  • 要发送的短信的内容(body)和收件人(recipients)在展现这个controller前需初始化好,展现了之后短信内容不能通过程序来进行修改.不过用户仍然可以手工修改短信内容和选择收件人
  • 用户点了发送或者取消,或者发送失败时,MFMessageComposeViewControllerDelegate 的– messageComposeViewController:didFinishWithResult:方法都能得到通知,在这里进行相应的处理

若在iOS3.0上运行的话,会提示dyld: Symbol not found: _OBJC_CLASS_$_MFMessageComposeViewController .解决方案:

  1. MessageUI.framework的引入类型应选择weak(在target -> Get Info -> General -> Linked Libraries -> MessageUI.framework -> Type 里修改)
  2. 不要在.h文件里直接import MessageUI/MFMessageComposeViewController.h,改为import <MessageUI/MessageUI.h>

代码:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#pragma mark -
#pragma mark SMS
 
-(IBAction)showSMSPicker:(id)sender {
    //  The MFMessageComposeViewController class is only available in iPhone OS 4.0 or later.
    //  So, we must verify the existence of the above class and log an error message for devices
    //      running earlier versions of the iPhone OS. Set feedbackMsg if device doesn't support
    //      MFMessageComposeViewController API.
    Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
 
    if (messageClass != nil) {
        // Check whether the current device is configured for sending SMS messages
        if ([messageClass canSendText]) {
            [self displaySMSComposerSheet];
        }
        else {
            [UIAlertView quickAlertWithTitle:@"设备没有短信功能" messageTitle:nil dismissTitle:@"关闭"];
        }
    }
    else {
        [UIAlertView quickAlertWithTitle:@"iOS版本过低,iOS4.0以上才支持程序内发送短信" messageTitle:nil dismissTitle:@"关闭"];
    }
}
 
-(void)displaySMSComposerSheet
{
    MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
    picker.messageComposeDelegate = self;
 
    NSMutableString* absUrl = [[NSMutableString alloc] initWithString:web.request.URL.absoluteString];
    [absUrl replaceOccurrencesOfString:@"http://i.aizheke.com" withString:@"http://m.aizheke.com" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [absUrl length])];
 
    picker.body=[NSString stringWithFormat:@"我在爱折客上看到:%@ 可能对你有用,推荐给你!link:%@"
                                        ,[web stringByEvaluatingJavaScriptFromString:@"document.title"]
                                        ,absUrl];
    [absUrl release];
    [self presentModalViewController:picker animated:YES];
    [picker release];
}
 
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
                 didFinishWithResult:(MessageComposeResult)result {
 
    switch (result)
    {
        case MessageComposeResultCancelled:
            LOG_EXPR(@"Result: SMS sending canceled");
            break;
        case MessageComposeResultSent:
            LOG_EXPR(@"Result: SMS sent");
            break;
        case MessageComposeResultFailed:
            [UIAlertView quickAlertWithTitle:@"短信发送失败" messageTitle:nil dismissTitle:@"关闭"];
            break;
        default:
            LOG_EXPR(@"Result: SMS not sent");
            break;
    }
    [self dismissModalViewControllerAnimated:YES];

}

 

 

分享到:
评论

相关推荐

    模仿iphone弹出式短信查看

    标题“模仿iPhone弹出式短信查看”涉及到的是在非iOS平台上(可能是Android或者Web应用)实现类似iPhone风格的弹出式短信查看功能。这个功能通常包括一个简洁且具有动画效果的界面,用户可以快速预览短信内容,而...

    iphone 短信发送成功音效

    总的来说,"iPhone短信发送成功音效"是一个看似微小但至关重要的设计,它体现了人机交互中的反馈机制和用户体验。而"SentMessage.wav"作为原始音频文件,揭示了音效制作和优化的过程。在IT领域,理解这些细节有助于...

    iphone短信发送(非系统界面)

    在iOS开发中,有时开发者可能需要在应用程序内部实现短信发送功能,而不是引导用户跳转到系统默认的短信应用。这种情况下,我们可以通过编程接口(API)来实现所谓的“非系统界面”的短信发送。标题和描述提到的...

    Android仿iphone-气泡短信-DEMO.zip

    "Android仿iphone-气泡短信-DEMO.zip" 这个标题表明这是一个针对Android平台的开发项目,其目标是模仿iPhone的气泡短信效果。气泡短信是iOS系统中一种常见的对话界面设计,以气泡的形式展示聊天内容,使用户在视觉上...

    安卓开发-仿iphone 气泡短信 DEMO.zip

    在安卓开发中,创建一个类似iPhone的气泡短信界面是一个常见的需求,这涉及到UI设计、布局管理和自定义视图等方面的知识。"安卓开发-仿iphone 气泡短信 DEMO.zip"是一个示例项目,旨在展示如何在Android平台上实现...

    Android 仿iphone 气泡短信 DEMO-IT计算机-毕业设计.zip

    这个Android应用源码项目"Android 仿iphone 气泡短信 DEMO"是一个毕业设计作品,旨在帮助学生理解和掌握Android应用程序开发技术,特别是涉及到模仿iPhone风格的气泡短信界面的设计和实现。通过此项目,我们可以深入...

    flex开发 仿iphone 短信气泡信息框

    气泡信息框是iPhone短信应用中的一大特色,它通过不同的颜色和形状区分发送者和接收者的消息,使得对话界面更加清晰易读。气泡的形状通常为椭圆形,其中包含文本内容,并根据消息的方向(发送或接收)而改变其方向和...

    仿iphone气泡短信 DEMO

    在这个项目中,开发者不仅定制了ListView的每个单元格(即ListView项),还特别设计了气泡形状,以模仿iPhone短信应用中的气泡样式,包括不同颜色和方向的气泡,以区分发送者和接收者的文字。 【标签】中的"iphone...

    UI之高仿iphone短信发送气泡效果

    在Android UI设计中,模拟iPhone的短信发送气泡效果是一项常见的需求,这可以让应用看起来更加接近原生iOS的用户体验。本教程将详细讲解如何实现这一效果,并提供已测试的代码资源,确保在Android 2.3及更高版本上...

    类似iphone短信中滑动收缩键盘

    总的来说,实现类似iPhone短信中滑动收缩键盘的功能,需要深入了解iOS的事件处理、手势识别、动画控制以及键盘通知机制。通过以上步骤,开发者可以为自己的应用添加类似的交互,提高用户体验。在实际开发中,不断...

    安卓短信彩信相关相关-仿iphone气泡短信DEMO.rar

    10. **多线程处理**:为了不影响UI的流畅性,处理耗时操作(如发送短信、加载更多历史记录)应在子线程中进行,可以使用AsyncTask或者Retrofit等网络库配合OkHttp进行异步操作。 总的来说,这个DEMO提供了实现类似...

    仿iphone 气泡短信 DEMO

    【标题】"仿iPhone气泡短信DEMO"是一款模拟iPhone风格短信对话的应用程序演示,它在Android平台上展示了如何实现类似iOS设备中短信应用的气泡效果。这种效果以直观、富有交互性的界面设计,使用户在非iOS设备上也能...

    iPhone应用程序开发指南

    ### iPhone应用程序开发指南 #### 一、iPhone系统介绍 iPhone是由苹果公司设计并销售的一系列智能手机,自2007年首次推出以来,已经成为全球最受欢迎的智能手机之一。苹果公司的创始人史蒂夫·乔布斯曾表示:...

    iphone 短信气泡效果UI

    在iOS开发中,创建具有互动性和吸引力的用户界面是至关重要的,尤其是对于聊天应用程序来说,短信气泡效果是不可或缺的一部分。"iphone 短信气泡效果UI" 是一个专门为开发者设计的开源控件,旨在简化这个过程,让...

    iphone气泡短信

    在Android应用开发中,"iPhone气泡短信"是一种常见的界面设计风格,用于模拟iOS设备上的短信对话界面。这种设计使得用户在Android设备上也能获得与iOS相似的用户体验,增加了应用的交互性和美观度。以下是对这个主题...

    中文垃圾短信和正常短信

    5. **内容审查**:检查短信中的URL链接是否指向可疑网站,以及是否包含非法或误导性内容。 综上所述,通过对短信内容的分析,我们可以有效地识别哪些是正常的、有用的短信,哪些是垃圾短信,并采取相应的过滤措施。...

    WP7仿iphone气泡式短信界面 v0.1源码

    该源码项目是针对Windows Phone 7 (WP7) 平台开发的一个仿iPhone气泡式短信界面。这种界面设计通常用于短信应用中,模仿了iOS系统中对话气泡的显示方式,使得用户在WP7设备上也能体验到类似iPhone的交互效果。以下是...

    安卓Android源码——仿iphone气泡短信DEMO.zip

    【标题】"安卓Android源码——仿iphone气泡短信DEMO.zip" 提供的是一个针对Android平台的项目,目标是实现类似iPhone中的气泡样式短信界面。这种界面设计常见于即时通讯应用,通过气泡来展示对话内容,使得用户界面...

    SMSReply:尝试在越狱的 iPhone 上自动发送短信并观看新的短信接收事件

    在越狱的 iPhone 上,开发者可以访问到更多的系统权限,这使得自动化发送短信以及监听新短信的接收成为可能。标题表明这个项目可能是用于研究或者测试目的,特别是对于那些对 iOS 自动化和越狱开发感兴趣的用户。 ...

Global site tag (gtag.js) - Google Analytics