在开发某些应用时可能希望能够调用iOS系统内置的电话、短信、邮件、浏览器应用,此时你可以直接使用UIApplication的OpenURL:方法指定特定的协议来打开不同的系统应用。常用的协议如下:
打电话:tel:或者tel://、telprompt:或telprompt://(拨打电话前有提示)
发短信:sms:或者sms://
发送邮件:mailto:或者mailto://
启动浏览器:http:或者http://
下面以一个简单的demo演示如何调用上面几种系统应用:
//打电话 - (IBAction)callClicK:(UIButton *)sender { NSString *[email protected]"18500138888"; // NSString *url=[NSString stringWithFormat:@"tel://%@",phoneNumber]; //这种方式会直接拨打电话 NSString *url=[NSString stringWithFormat:@"telprompt://%@",phoneNumber]; //这种方式会提示用户确认是否拨打电话 [self openUrl:url]; } //发送短信 - (IBAction)sendMessageClick:(UIButton *)sender { NSString *[email protected]"18500138888"; NSString *url=[NSString stringWithFormat:@"sms://%@",phoneNumber]; [self openUrl:url]; } //浏览网页 - (IBAction)browserClick:(UIButton *)sender { NSString *[email protected]"http://www.cnblogs.com/kenshincui"; [self openUrl:url]; } #pragma mark - 私有方法 -(void)openUrl:(NSString *)urlStr{ //注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送邮件是“sms://”其中“//”可以省略写成“sms:”(其他协议也是如此) NSURL *url=[NSURL URLWithString:urlStr]; UIApplication *application=[UIApplication sharedApplication]; if(![application canOpenURL:url]){ NSLog(@"无法打开\"%@\",请确保此应用已经正确安装.",url); return; } [[UIApplication sharedApplication] openURL:url]; }
时间: 2024-10-04 20:20:02