zoukankan      html  css  js  c++  java
  • 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打开应用一后被调用

  • 相关阅读:
    Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
    react.js
    IE8 frameset SESSION丢失
    回调函数参数问题,闭包解决方案示例
    自定义 httpHandler 配置
    查看SQLServer数据库每个表占用的空间大小
    数据库备份到局域网其他电脑
    SpringSecurity权限管理系统实战—一、项目简介和开发环境准备
    java开发环境配置,看这一篇就足够了!
    java23种设计模式——八、组合模式
  • 原文地址:https://www.cnblogs.com/zanglitao/p/4054812.html
Copyright © 2011-2022 走看看