网络之Call Phone、Web、SMS、Email
1. 准备工作:导入信息UI库 #import <MessageUI/MessageUI.h>
2. Call Phone
方式一: 拼接字符串 注意开头是tel: 这种方式打电话回不到原来应用中,会停留在通讯录里,而且是直接拨打电话 没有任何弹窗提示
NSString *str = [NSString stringWithFormat:@"tel:%@",self.phoneTextField.text];
首先得到应用的单例对象 然后调用openURL:这个方法 参数是url对象
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
方式二: 这种方式有弹窗提示,并且能回到原来应用中 推荐这种
NSString *str1 = [[NSString alloc] initWithFormat:@"tel:%@",self.phoneTextField.text];
创建UIWebView对象
UIWebView *callWebView = [[UIWebView alloc] init];
加载一个请求对象 这个请求对象通过url对象创建 url对象又通过str1字符串获得
[callWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str1]]];
加入到self.view上
[self.view addSubview:callWebView];
方式三:这种方式 也可以有弹窗提示 并且也能回到原来的应用中 也推荐这种
NSString *str2 = [NSString stringWithFormat:@"telprompt:%@",self.phoneTextField.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str2]];
3. Web 打开网址 注意:打开的网址注意是http:// 或是https://
NSString *str = [NSString stringWithFormat:@"https://%@",self.webTextField.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
4. SMS
方式一:这种方式没法回到应用中,但是注意不要写中文等特殊字符 否则无法跳到发短信界面
优点:简单 缺点:不能指定发送内容,只能指定发送人,而且不能回到应用中
NSString *str = [NSString stringWithFormat:@"sms://%@",self.smsTextField.text];
NSURL *url = [NSURL URLWithString:str];
[[UIApplication sharedApplication] openURL:url];
方式二:推荐这种
优点:1.从应用出来并且能回到应用中
2.可以发送多人
3.可以用代码自定义消息
4.如果手机开通了iMessage功能,会走网络通道,不走运营商通道
判断用户设备是否能发送短信
if (![MFMessageComposeViewController canSendText]) {
NSLog(@"不能发送内容");
return ;
}
1.创建一个短信控制器对象
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
2.设置短信内容
(1)收件人
controller.recipients = @[@"10086",@"10010"];
(2)短信内容
controller.body = @"你好啊 你俩";
(3)设置短信代理 (要遵守代理协议MFMessageComposeViewControllerDelegate)
controller.messageComposeDelegate = self;
3.显示短信控制器
[self presentViewController:controller animated:YES completion:^{
NSLog(@"显示短信控制器完成代码块");
}];
#pragma mark - 短信控制器代理方法
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
/*
MessageComposeResultCancelled, 取消
MessageComposeResultSent, 发送
MessageComposeResultFailed 失败
result枚举
*/
NSLog(@"%d",result);
//注:别忘了回到应用中
[controller dismissViewControllerAnimated:YES completion:^{
NSLog(@"短信控制器消失完成后代码块");
}];
}
5. Email
方式一:
NSString *str = [NSString stringWithFormat:@"mailto://%@",self.emailTextField.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
方式二:
判断是否能发送邮件
if (![MFMailComposeViewController canSendMail]) {
NSLog(@"不能发送邮件");
return;
}
创建mail控制器对象
MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init];
设置邮件主题
[vc setSubject:@"第一天 第二次发送"];
设置邮件发送内容 第二个参数支持HTML格式
[vc setMessageBody:@"今天主要讲了CoreData 和基本的电话、邮件、web已经短信" isHTML:YES];
设置收件人列表
[vc setToRecipients:@[@"56483826@qq.com"]];
设置抄送人列表
[vc setCcRecipients:@[@"383822222@qq.com",@"45454@163.com"]];
设置邮件代理(要遵守邮件代理MFMailComposeViewControllerDelegate)
vc.mailComposeDelegate = self;
显示邮件控制器
[self presentViewController:vc animated:YES completion:^{
NSLog(@"跳转完成后执行代码块");
}];
#pragma mark - 邮件代理方法
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
/*
result枚举类型
MFMailComposeResultCancelled, 取消
MFMailComposeResultSaved, 保存
MFMailComposeResultSent, 发送
MFMailComposeResultFailed 失败
*/
NSLog(@"%d",result);
[controller dismissViewControllerAnimated:YES completion:^{
NSLog(@"邮箱控制器消失完成后代码块");
}];
}
网络之Call Phone、Web、SMS、Email的更多相关文章
- 20155324《网络对抗技术》web安全基础实践
20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在 ...
- 20145215《网络对抗》Exp9 Web安全基础实践
20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...
- 20145208 蔡野 《网络对抗》Exp9 web安全基础实践
20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...
- 20145311王亦徐 《网络对抗技术》 Web安全基础实践
2014531王亦徐 <网络对抗技术> Web安全基础实践 实验内容 利用WebGoat平台尝试了一些XSS.CSRF.SQL注入攻击 基础问题回答 1.SQL注入攻击原理,如何防御原理: ...
- 20145325张梓靖 《网络对抗技术》 Web安全基础实践
20145325张梓靖 <网络对抗技术> Web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Ref ...
- 20155202《网络对抗》Exp9 web安全基础实践
20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...
- 20155204《网络对抗》Exp9 Web安全基础实践
20155204<网络对抗>Exp9 Web安全基础实践 一.基础问题回答 SQL注入攻击原理,如何防御? 原理: SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以 ...
- 20155207 《网络对抗》 Exp9 Web安全基础
20155207 <网络对抗> Exp9 Web安全基础 实验内容 关于WebGoat Cross-Site Scripting(XSS)练习 Injection Flaws练习 CSRF ...
- 20155217《网络对抗》Exp09 Web安全基础实践
20155217<网络对抗>Exp09 Web安全基础实践 实践内容 关于webgoat:询问了很多人在安装webgoat时出现了错误,安装失败,因此直接通过同学copy了老师的虚拟机进行 ...
- 20155227《网络对抗》Exp9 Web安全基础实践
20155227<网络对抗>Exp9 Web安全基础实践 实验内容 关于WebGoat Cross-Site Scripting(XSS)练习 Injection Flaws练习 CSRF ...
随机推荐
- 010-JDK可视化监控工具-VisualVM
一.概述 VisualVM是一个集成多个JDK命令行工具的可视化工具.VisualVM基于NetBeans平台开发,它具备了插件扩展功能的特性,通过插件的扩展,可用于显示虚拟机进程及进程的配置和环境信 ...
- JetBrains ReSharper 8.2 Build 8.2.0.2160 && StyleCop
先安装 StyleCop 再安装 JetBrains ReSharper 8.2 Build 8.2.0.2160
- PHP函数的创建
看代码 PHP函数的创建,包括参数,和其他的语言一样 <?php #PHP crate function function writeName($name) { echo 'Name is '. ...
- 微信小程序将带来web程序员的春天!
微信之父张小龙在年初那次演讲中曾表示:“我自己是很多年的程序员,我觉得我们应该为开发的团体做一些事情.”几个月后,微信正式推出微信应用号(即微信小程序)在互联网中掀起又一波热潮. 过去,对于很多开发者 ...
- cdoj1338郭大侠与英雄学院
地址:http://acm.uestc.edu.cn/#/problem/show/1338 思路: 郭大侠与英雄学院 Time Limit: 6000/2000MS (Java/Others) ...
- onerror事件
onerror 事件会在文档或图像加载过程中发生错误时被触发. 案例: <img onerror="this.onerror=null;this.src='/images/common ...
- 轮询、长轮询、长连接、socket连接、WebSocket
轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接. 优点:后端程序编写比较容易. 缺点:请求中有大半是无用,浪费带宽和服务器资源.(而每一次的 HTTP 请求和应答 ...
- Java设计模式学习之工厂模式
在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了.Java 设计模式之工厂模式 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低 ...
- ThinkPHP开发博客系统笔记之二
1. 登陆验证码 当用户登陆的时候我们希望也弹出验证码,有两种方法可以实现:一是再增加一个弹出验证码的dialog,二是和注册共用一个验证码dialog.第一种方法有大量重复代码,所以我们使用第二种方 ...
- [Android]自定义控件LoadMoreRecyclerView
RecyclerView是加强版的ListView,用于在有限的窗口中展示大量的数据,而LoadMoreRecyclerView则是为RecyclerView增加了加载更多的功能,先来看效果: 三种加 ...