openURL ios

openURL能帮助你运行Maps,SMS,Browser,Phone甚至其他的应用程序。这是Iphone开发中我经常需要用到的一段代码,它仅仅只有一行而已。
- (IBAction)openMaps {
    //打开地图 
   NSString*addressText = @"beijing";
    //@"1Infinite Loop, Cupertino, CA 95014"; 
   addressText =[addressTextstringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]; 
   NSString*urlText = [NSStringstringWithFormat:@"http://maps.google.com/maps?q=%@",addressText]; 
   NSLog(@"urlText=============== %@", urlText);
   [[UIApplicati*****haredApplication] openURL:[NSURL URLWithString:urlText]];
}

- (IBAction)openEmail {
     //打开mail // Fire off an email to apple support
      [[UIApplication sharedApplication]openURL:[NSURL   URLWithString:@"mailto://devprograms@apple.com"]];
 
 
- (IBAction)openPhone {
  
    //拨打电话
    // CallGoogle 411
    [[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"tel://8004664411"]];
 
 
- (IBAction)openSms {
    //打开短信
     // Text toGoogle SMS
    [[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"sms://466453"]];
}

-(IBAction)openBrowser {
    //打开浏览器
    // Lanuch any iPhone developers fav site
     [[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"http://itunesconnect.apple.com"]];
 }
iOS 18 中,`openURL:` 方法已经被完全弃用[^2]。取而代之的是推荐使用 `openURL:options:completionHandler:` 方法来打开 URL。这种方法允许开发者提供额外的选项,并通过完成处理程序接收操作结果。 以下是一个适配 iOS 18 及其之前版本的示例代码: ```objective-c + (void)openURL:(NSString *)urlString { NSURL *url = [NSURL URLWithString:urlString]; if ([[UIApplication sharedApplication] canOpenURL:url]) { if (@available(iOS 10.0, *)) { [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) { if (success) { // URL 成功打开 } else { // URL 打开失败 } }]; } else { // Fallback on earlier versions [[UIApplication sharedApplication] openURL:url]; } } else { // 无法打开该 URL } } ``` ### 注意事项: - **检查 URL 是否可打开**:在尝试打开 URL 之前,应调用 `canOpenURL:` 方法以确认是否可以打开指定的 URL。 - **完成处理程序**:使用 `openURL:options:completionHandler:` 时,务必实现完成处理程序以处理成功或失败的情况。 - **兼容性处理**:为了确保应用在不同 iOS 版本上的兼容性,应该根据设备的 iOS 版本来选择合适的方法。 ### 常见问题: - **微信分享无响应**:如果在 iOS 18 上使用旧方法进行微信分享导致无响应,这通常是因为没有更新到新的 `openURL:options:completionHandler:` 方法。 - **URL 打开失败**:有时即使 URL 是正确的,也可能因为缺少必要的权限或者系统限制而无法打开。在这种情况下,应检查 URL 的格式以及设备的网络设置[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值