iOS实现APP调用打电话,发短信,发邮件,打开Safari

打电话:

- (IBAction)phone:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}

打开Safari:

- (IBAction)Safari:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.google.com.hk"]];
}

发短信:
发短信需要导入#import <MessageUI/MFMessageComposeViewController.h>头文件,并遵守MFMessageComposeViewControllerDelegate代理,实现如下步骤,

- (IBAction)msg:(id)sender {
//    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://123456789"]];
    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];

    if([MFMessageComposeViewController canSendText])

    {

        controller.body = @"hhhhHhhhhhhhhhhhhhhh";//信息内容

        controller.recipients = @[@"123456789"];//接收者,是一个数组,可以发送给多人

        controller.messageComposeDelegate = self;


        [self presentViewController:controller animated:YES completion:nil];
    }

}

发送短信完成的代理方法:

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
    [self dismissViewControllerAnimated:YES completion:nil];

    if (result == MessageComposeResultCancelled)
        NSLog(@"Message cancelled");
        else if (result == MessageComposeResultSent)
            NSLog(@"Message sent");
            else
                NSLog(@"Message failed");

}

发邮件:
发邮件需要导入#import <MessageUI/MFMailComposeViewController.h>头文件,并遵守MFMailComposeViewControllerDelegate代理,实现如下步骤,

- (IBAction)mail:(id)sender {
    MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];

    if([MFMailComposeViewController canSendMail])

    {

        [controller setSubject:@"send email!!!"];//邮件主题

        [controller setToRecipients:@[@"123456789@qq.com"]];//收件人

        [controller setCcRecipients:@[@"12345678@qq.com"]];//抄送

        [controller setMessageBody:@"hello world!" isHTML:NO];

        controller.mailComposeDelegate = self;

        [self presentViewController:controller animated:YES completion:nil];

    }
}

发送邮件完成的代理方法:

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {

    [self dismissViewControllerAnimated:YES completion:nil];

    if (result == MessageComposeResultCancelled)
        NSLog(@"Message cancelled");
    else if (result == MessageComposeResultSent)
        NSLog(@"Message sent");
    else
        NSLog(@"Message failed");

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UniApp 是一款基于 Vue.js 的跨平台应用开发框架,它可以帮助开发者构建一套代码,同时适应多个平台,包括 Web、iOS、Android 和 H5 等。在 UniApp 中,如果你想要调用手机的内置功能,比如打电话,你需要利用原生的能力,因为 UniApp 提供的是封装后的接口,而不是直接访问底层操作。 在 UniApp 中,调用电话号码的方式通常涉及到 `uni-app-plus` 插件中的 `plus打电话` 方法。首先,你需要确保已经在项目中安装了这个插件,并在运行环境(如微信小程序、H5 或原生应用)中支持相应的权限请求。具体步骤如下: 1. 在项目的 `pages/index.vue` 或其他需要使用该功能的页面中引入 `uni-app-plus`: ```html <template> <view> <button @click="callPhone">拨打</button> </view> </template> <script> import { plus } from '@vant/weapp'; export default { methods: { callPhone() { if (plus) { // 检查是否已获取到必要的权限 if (plus perms.has('phoneCall')) { plus.phoneCall({ number: '1234567890', // 替换为你要拨打的电话号码 type: 'dial' // 拨打类型,默认为拨号 }); } else { console.log('未授权,无法拨打'); } } else { console.log('plus模块不存在,请检查是否安装并配置正确'); } } } } </script> ``` 2. 确保在项目的 `config.json` 文件中设置了对相应权限的请求: ```json { "framework": { "plugins": { "plus": {} }, "permission": { "scope_phoneCall": { "desc": "您的应用需要访问通话功能" } } } } ``` 当你点击“拨打”按钮时,如果用户已经授权,程序会调起设备上的拨号器,拨打指定的电话号码。记得根据实际需求替换电话号码,或者让用户输入号码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值