热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

打电话,发短信,发邮件,app跳转

1.打电话-(IBAction)callPhone1:(id)sender{NSURL*url[NSURLURLWithString:@tel:18500441739];

1.打电话

- (IBAction)callPhone1:(id)sender {
NSURL
*url = [NSURL URLWithString:@"tel://18500441739"];
[[UIApplication sharedApplication] openURL:url];
}
- (IBAction)callPhone2:(id)sender {
NSURL
*url = [NSURL URLWithString:@"telprompt://18500441739"];
[[UIApplication sharedApplication] openURL:url]; }
- (IBAction)callPhone3:(id)sender {
if (_webView == nil) {
_webView
= [[UIWebView alloc] initWithFrame:CGRectZero];
}
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:
@"tel://18500441739"]]];
}

  推荐使用第三种,第一个为私有API,第二个无法回到原来app

2.发短信

- (IBAction)sendMsg:(id)sender {
NSURL
*url = [NSURL URLWithString:@"sms://18500441739"];
[[UIApplication sharedApplication] openURL:url];
}
- (IBAction)sendWithMsg:(id)sender {
/* 必须要导入 */
MFMessageComposeViewController
*vc = [[MFMessageComposeViewController alloc] init];
/* 消息内容 */
vc.body
= @"吃饭了没?";
/* 收到消息的人列表 */
vc.recipients
= @[@"18500441739",@"15342777049"];
/* MFMessageComposeViewControllerDelegate */
vc.messageComposeDelegate
= self;
[self presentViewController:vc animated:YES completion:nil];
}

   建议使用第二种,第二个可以预编辑文字和发送列表发送完了以后会有代理方法调用

#pragma mark - MFMessageComposeViewControllerDelegate
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
[controller dismissViewControllerAnimated:YES completion:nil];
if (result == MessageComposeResultCancelled) {
NSLog(
@"取消发送");
}
else if (result == MessageComposeResultFailed){
NSLog(
@"发送失败");
}
else if(result == MessageComposeResultSent){
NSLog(
@"发送成功");
}
else{
NSLog(
@"未知情况");
}
}

3.发送邮件

- (IBAction)sendEmail:(id)sender {
NSURL
*url = [NSURL URLWithString:@"mailto://aaaa61134@qq.com"];
[[UIApplication sharedApplication] openURL:url];
}
- (IBAction)sendEmailWithMsg:(id)sender {
NSLog(
@"%@",[self class]);

if (![MFMailComposeViewController canSendMail]) {
NSLog(
@"yes");
return;
}
MFMailComposeViewController
*vc = [[MFMailComposeViewController alloc] init];
/* 收件人列表 */
[vc setToRecipients:@[
@"2542461134@qq.com",@"22422061134"]];
/* 抄送人列表 */
[vc setCcRecipients:@[
@"12763456@qq.com"]];
/* 密送人列表 */
[vc setBccRecipients:@[
@"233r@qq.com",@"2525234@163.com"]];
/* 设置代理 MFMailComposeViewControllerDelegate*/
[vc setMailComposeDelegate:self];
/* 发送主题 */
[vc setSubject:
@"会议"];
/* 发送内容,是否为HTML文档 */
[vc setMessageBody:
@"测试发邮件功能" isHTML:NO];

/* 添加附件 */
UIImage
*image = [UIImage imageNamed:@"IMG_0993"];
NSData
*data = UIImagePNGRepresentation(image);
[vc addAttachmentData:data mimeType:
@"image/png" fileName:@"首页.png"];

/* 跳转页面 */
[self presentViewController:vc animated:YES completion:nil];

}

 推荐 第二种方法,第二种方法也有代理方法的调用

#pragma mark - MFMailComposeViewControllerDelegate
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{
[controller dismissViewControllerAnimated:YES completion:nil];
if (result == MFMailComposeResultCancelled) {
NSLog(
@"取消发送");
}
else if (result == MFMailComposeResultSent){
NSLog(
@"发送成功");
}
else if (result == MFMailComposeResultSaved){
NSLog(
@"保存邮件");
}
else if (result == MFMailComposeResultFailed){
NSLog(
@"发送失败");
}
else{
NSLog(
@"发送异常");
}
}

4.跳转其他app

  a.跳转浏览器

/*  跳入浏览器  */
- (IBAction)intoBorwer:(UIButton *)sender {
/*
如果想打开一些常见文件,比如html、txt、PDF、PPT等,都可以使用UIWebView打开
只需要告诉UIWebView文件的URL即可

至于打开一个远程的共享资源,比如http协议的,也可以调用系统自带的Safari浏览器
*/
NSLog(
@"%@",sender.titleLabel.text);
NSString
*urlStr = [NSString stringWithFormat:@"http://%@",sender.titleLabel.text];
NSURL
*url = [NSURL URLWithString:urlStr];
[[UIApplication sharedApplication] openURL:url];
}

  b.跳转到其他app

/*  跳入到其他的程序  */
- (IBAction)intoOtherApp:(id)sender {
/* 在要跳入的app中设置 URL Types
1.打开原文件
2.选择Info.Plist文件
3.添加URL types
4.点开URL types 将URL identifier的值设为 ios.defaults.com
5.在URL types中添加URL Schemes,并将其值设为 who
6.访问的url为 who://ios.defaults.com
*/
NSURL
*url = [NSURL URLWithString:@"yds://ios.hgl.org"];
[[UIApplication sharedApplication] openURL:url];
}

 


推荐阅读
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 本文探讨了在 PHP 的 Zend 框架下,使用 PHPUnit 进行单元测试时遇到的 Zend_Controller_Response_Exception 错误,并提供了解决方案。 ... [详细]
  • 我在尝试将组合框转换为具有自动完成功能时遇到了一个问题,即页面上的列表框也被转换成了自动完成下拉框,而不是保持原有的多选列表框形式。 ... [详细]
  • 本文介绍了一种在 Android 开发中动态修改 strings.xml 文件中字符串值的有效方法。通过使用占位符,开发者可以在运行时根据需要填充具体的值,从而提高应用的灵活性和可维护性。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
  • Spring Boot使用AJAX从数据库读取数据异步刷新前端表格
      近期项目需要是实现一个通过筛选选取所需数据刷新表格的功能,因为表格只占页面的一小部分,不希望整个也页面都随之刷新,所以首先想到了使用AJAX来实现。  以下介绍解决方法(请忽视 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 本文总结了软件工程课程M1和M2阶段的个人收获,包括项目开发中的技术学习、团队协作及管理经验。同时,对《构建之法》一书中的相关问题进行了理解和分析。 ... [详细]
  • PHP服务接口的专业测试方法与实践 ... [详细]
  • 本文介绍了实现链表数据结构的方法与技巧,通过定义一个 `MyLinkedList` 类来管理链表节点。该类包含三个主要属性:`first` 用于指向链表的第一个节点,`last` 用于指向链表的最后一个节点,以及 `size` 用于记录链表中节点的数量。此外,还详细探讨了如何通过这些属性高效地进行链表的操作,如插入、删除和查找等。 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • 本文初步探讨了PHP中基于JWT(JSON Web Token)的身份验证机制。具体流程包括:1. 客户端通过用户名和密码发起登录请求;2. 服务器接收并验证用户凭证的合法性,若验证通过,则生成并返回一个JWT令牌;3. 客户端接收该令牌,并在后续请求中携带此令牌以完成身份验证。这一机制不仅提高了安全性,还简化了会话管理。 ... [详细]
  • 我已经在html中创建了一个表单,并且我想将其用户插入的数据以JSON对象的形式存储在JSON文件中&数组,我与json&一起使用JavaScripts ... [详细]
  • 类库下载composerrequirempdfmpdf3、控制器代码useMpdf\Mpdf;publicfunctioncreatePdf(){为了防止文件下载的时候出现跨 ... [详细]
author-avatar
80后女孩香香521
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有