IOS openURL

我们可以通过调用UIApplication单例对象的openURL方法进行打电话,发短信,调用其他应用等操作

 

在safari中打开网址

- (IBAction)openSafari:(id)sender {
    NSString *httpUrlStr = @"http://www.cnblogs.com/zanglitao";
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:httpUrlStr]];
} 

URL前缀是http://

 

拨打电话

- (IBAction)makeCall:(id)sender {
    UIDevice *device = [UIDevice currentDevice];
    if ([device.model isEqualToString:@"iPhone"]) {
        
        NSString *callUrlStr = @"tel:137XXXXXXXXX";
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callUrlStr]];
    }
}

URL前缀是tel:  只有iPhone才支持拨打电话,可以取得当前UIDevice实例,通过比对model属性查看当前设备是否为iPhone

 

发短信

- (IBAction)sendSMS:(id)sender {
    UIDevice *device = [UIDevice currentDevice];
    if ([device.model isEqualToString:@"iPhone"]) {
        NSString *smsUrlStr = @"sms:137XXXXXXXX";
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:smsUrlStr]];
    }  
}

 URL前缀是sms

 

此外我们还可以通过openURL打开系统中其他应用,实现进程间通信

首先我们创建应用一,并且在应用一的plist文件中添加它的URL Scheme

设置完后我们就可以通过前缀为zltApp1://的url来打开该应用

 

我们再创建应用二,添加按钮用来打开应用一

- (IBAction)openApp:(id)sender {
    NSString *myAppUrl = @"zltApp1://info1,info2";
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:myAppUrl]];
}

我们可以在前缀zltApp1://后面添加内容作为参数传递

 

回到应用一,我们在AppDelegate中添加以下代码

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    
    if ([sourceApplication isEqualToString:@"xxx"]) {
        //逻辑代码
    }
    return YES;
}

 其中sourceApplication是应用二的bundle id,此函数会在应用二通过openURL打开应用一后被调用

转载于:https://www.cnblogs.com/zanglitao/p/4054812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值