调用系统应用

在开发某些应用时可能希望能够调用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

调用系统应用的相关文章

Android 打电话,发短信,调用系统浏览器

打电话: Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:10086")); startActivity(intent); 发短信: SmsManager smsManager=SmsManager.getDefault();//取得短信管理器 /**发简单的文本信息 * destinationAddress: 目标地址,发给谁 * scAddress: 来源的地址,谁发的 *

Android调用系统相机拍照保存照片很小解决方案

保存图片小的一般操作步骤: 1. 调用系统相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1); 2. 保存照片 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {  // TODO Auto-generated method s

PB调用系统自带的DLL 实现MD5

适用环境:powerbuilder 10.0以后的版本  window server2003以后的测试可用 PB也可以调用系统自带的DLL 实现MD5 其中md5file对大附件的处理速度也比第三方组件快一些 这里可以去下载附件 //调用样例: u_derek_md5 lu_md5 lu_md5=create u_derek_md5 string ls_text="123" string ls_result,ls_ret string ls_filepath="C:\1.tx

小米手机调用系统截图挂掉问题

调试系统切图 用户修改头像,当用户选择相册图片,然后调用系统切图工具后 小米手机直接退出程序,测试 MX 三星 都没问题 以下代码最关键地方 intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.parse(imagePath)); intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); public static void startPhotoZoom(Cont

Android图片系列(1)-------调用系统相册与相机获取图片

Android开发过程中,我们经常需要获取图片,你可以通过获取手机相册的图片,也可以调用相机拍照获取图片.这里主要讲这两个获取图片的方式,并记录其中遇到的小问题. 调用相册获取图片 这个功能非常简单,这里不多说了,这里贴出关键代码 Intent openAlbumIntent = new Intent(Intent.ACTION_GET_CONTENT); openAlbumIntent.setType("image/*"); startActivityForResult(openAl

调用系统对话框示例

演示如何调用系统对话框 (演示语言--delphi): uses ShlObj, Activex; procedure TForm1.Button2Click(Sender: TObject);var BrowseInfo: TBrowseInfo; ItemIDList: PItemIDList; ComputerName: array[0..MAX_PATH] of Char; Title: string; WindowList: Pointer; ShellMalloc: IMalloc;

Android调用系统相机、自定义相机、处理大图片

Android调用系统相机和自定义相机实例 本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人SurfaceView出现黑屏的原因. Android应用拍照的两种方式,下面为两种形式的Demo展示出来的效果.    知识点: 一.调用系统自带的相机应用 二.自定义我们自己的拍照界面 三.关于计算机解析图片原理(如何正确加载图片到Android应用中) 所需

iOS 调用系统电话

1,直接调用,结束后不返回自己的应用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]]; 2,使用WebView请求调用系统电话,结束后可以返回自身应用,合法 UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero]; [self.view addSubview:webView]; [webView l

实例365(2)---------调用系统api修改系统时间

一:截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace SetDate { public partial cl

系统软键盘">Android在外接物理键盘时,如何强制调用系统软键盘?

第一次写,写的不好请见谅 物理键盘映射过程: 手机/system/usr/keylayout/*.kl :内核将keyCode映射成有含义的字符串KeycodeLabels.h : framework 将字符串映射成keyEvent的keyCodeframeworks/-/res/values/attrs.xml - 主要部分:android.jar 一.问题描述:当平板连接上蓝牙扫描枪(外接物理键盘)时候,不能弹出软键盘输入,需要打开系统的输入法选择界面关闭硬件物理键盘后才能调用弹出系统软键盘