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

iOS4.0程序内发短信

 
阅读更多
OS4.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 .解决方案:
MessageUI.framework的引入类型应选择weak(在target -> Get Info -> General -> Linked Libraries -> MessageUI.framework -> Type 里修改)
不要在.h文件里直接import MessageUI/MFMessageComposeViewController.h,改为import <MessageUI/MessageUI.h>
代码:
#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];
}
分享到:
评论

相关推荐

    黄色数码盲盒4.0美化版本 带前端源码带视频教程站长亲测

    3. **移动应用开发**:"可以打包双端app"提示项目支持Android和iOS平台,可能使用了React Native、Flutter等跨平台开发框架,使得同一份代码能应用于多个操作系统。 4. **数据库管理**:数据库.sql文件可能包含了...

    (Android and ios) second version

    ### Android 4.0 vs iOS 5:深度对比与分析 #### 一、版本对比 在移动操作系统领域,iOS和Android一直是两大巨头。随着iOS 5与Android 4.0(Ice Cream Sandwich)的发布,这两款系统之间的竞争再度升级。 - **iOS...

    iPhone iOS 5 development essentials.pdf

    本书《iPhone iOS 5 Development Essentials》是一本专为iOS开发者编写的指南,主要聚焦于如何有效地开发针对iPhone的应用程序。随着iOS 5系统的发布,苹果引入了许多新的特性和改进,这些都为开发者提供了更为丰富...

    vCards 中国黄页 - 优化 iOS_Android 来电、信息界面体验.zip

    同样,在接收到新短信时,vCard支持也能让设备识别并显示发件人的完整信息。 这个压缩包可能包含了一个JavaScript库或工具,它可能是用来帮助开发者实现这一功能的。JavaScript作为客户端脚本语言,常用于Web开发,...

    IPHONE软件

    标题中的“IPHONE软件”可能是指一款针对Android设备的应用程序,该应用旨在为用户提供与iPhone相似的短信界面体验。在Android 4.0(冰淇淋三明治)及以上版本运行,这意味着该软件至少兼容了Android系统的一个较新...

    深度挖掘iphone4使用[文].pdf

    7. **多任务切换**:iOS 4.0及更高版本支持多任务切换,软件更新后可改善体验,如QQ退出后无需重新登录。 8. **日文输入法与绘文字**:启用日文输入法后,可在文件夹名称中添加小图标以区分类别。 9. **iTunes账号...

    iphone4使用小技巧

    - iOS 4.0 支持**多任务处理**,许多应用程序也陆续更新支持这一特性。 - 对于某些尚未支持多任务的应用(例如早期版本的QQ),只需等待其后续更新即可。 **8. 日文输入法的利用:** - 开启**日文输入法**中的**...

    苹果手机开发

    网络方面,它支持GSM、WCDMA、CDMA和CDMA2000网络模式,可在全球范围内无缝切换。操作系统为iOS 5.0,搭载了双核苹果A5处理器,频率为800MHz,配备512MB RAM和16GB内存,但不支持存储卡扩展。 手机采用Micro SIM卡...

    移动终端操作系统架构概览解剖.docx

    - **应用程序层**:由一系列预装的应用程序组成,如电子邮件客户端、短信程序、日历、地图、浏览器等。 ##### 3.3 Linux内核层详解 - **版本演进**:Android早期版本基于Linux 2.6内核,从4.0版本开始转向使用更新...

    8个最具增强现实类头戴装备集合.docx

    M100支持电话、拍照、上网和短信等基本功能,开放SDK,有望迎来更多应用程序。 3. Oculus Rift 头戴显示器 专为游戏爱好者设计的Oculus Rift提供了沉浸式体验,价格相对较低。它有两个600*800像素的目镜,合并后...

    Android Programming

    - **应用程序层**:由多个预装的应用程序组成,比如电话应用、短信应用、联系人应用等。 #### Android开发环境的构建 为了开发Android应用,开发者需要安装以下工具: - **Android Studio**:官方推荐的集成开发...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。...

    移动互联网App测试流程及测试点(个人整理版)

    兼容性测试主要确保App能在不同操作系统版本和硬件设备上正常运行,例如iOS 3.1.3至5.0.1、Android 1.6至4.0、Windows Phone 7.1及以上、Symbianv3/v5/Nokia Belle等。性能压力测试关注App在高负载下的表现。测试...

    Windows Mobile的前世与今生(PPC2000-WM6.5)

    ActiveSync 4.0 提供了更强大的同步功能,支持更多种类的文件同步。Internet Explorer Mobile 6 提供了更好的网页浏览体验,支持更多网页标准。Media Player 10 Mobile,增强了多媒体播放能力,支持更多的音频...

    Pro Android 4 英文原版

    - **短信服务**:解释如何发送和接收短信。 24. **第24章:理解媒体框架** - **多媒体播放**:介绍如何使用Android的媒体框架播放音频和视频。 - **录音和录制视频**:提供录音和录制视频的方法。 25. **第25章...

Global site tag (gtag.js) - Google Analytics