首页 > 其他分享 >ios 调用系统应用的方法 应用间跳转的方法

ios 调用系统应用的方法 应用间跳转的方法

时间:2023-08-23 12:35:12浏览次数:33  
标签:NSURL url self ios button2 NSString 应用 跳转

声明一个私有方法:

#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];
}

调用系统应用的方法:

UIButton *button2 = [UIButton buttonWithType:UIButtonTypeCustom];
    button2.backgroundColor = [UIColor blueColor];
    [button2 setTitle:@"风好大" forState:UIControlStateNormal];
    [button2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    button2.titleLabel.textAlignment = NSTextAlignmentCenter;
    button2.frame = CGRectMake(100, 360, 100, 50);
    [button2 addTarget:self action:@selector(BtnClickTwo:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button2];

-(void)BtnClickTwo:(id)sender
{
    //打电话
    /*
     NSString *phoneNumber = @"13592671307";
     NSString *url = [NSString stringWithFormat:@"telprompt://%@",phoneNumber];
     [self openUrl:url];
     */

    //发送短信
    /*
     NSString *phoneNumber = @"13592671307";
     NSString *url = [NSString stringWithFormat:@"sms://%@",phoneNumber];
     [self openUrl:url];
     */

    //发送邮件
    /*
     NSString *mailAddress = @"[email protected]";
     NSString *url = [NSString stringWithFormat:@"mailto://%@",mailAddress];
     [self openUrl:url];
     */

    //浏览网页
    /*
     NSString *url = @"https:www.baidu.com";
     [self openUrl:url];
     */

}

这样就可以直接应用了,当然了,打电话和发短信都是可以返回本应用的!如果大家有其他的需求可以自行百度!

 

拓展篇:应用间跳转

在有些时候,我们会遇到这样的需求,在一个应用中需要打开其他应用,那么这个效果是怎么实现呢:

1,创建2个应用

ios  调用系统应用的方法  应用间跳转的方法_发送邮件

2,在被打开的应用中,设置练习2的url;

ios  调用系统应用的方法  应用间跳转的方法_iOS_02

 

3,在练习中编写打开练习2的代码:

-(void)BtnClickTwo:(id)sender
{
    NSURL *url = [NSURL URLWithString:@"appb:"];
    [[UIApplication sharedApplication]openURL:url];
}

 

备注:有两种状态

第一种状态:练习2没有打开,那么会启动练习2,并调用入口类的方法

第二种状态:练习2在后台运行,那么不会调用入口类方法

 

拓展:

当一个应用被另一个应用打开的时候,会调用以下方法:

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

在该方法中可以实现两个应用程序间的数据局传递


作者:稻草人11223


标签:NSURL,url,self,ios,button2,NSString,应用,跳转
From: https://blog.51cto.com/u_13188203/7201324

相关文章

  • ios button标记
    在写项目的时候,for循环创建多个button,在需要设置背景图片和,需要标记所选中的button的需求,在这里提供两种方法:一:1:把for循环创建的button全部装到一个新建的数组中,把他们的点击事件都写在一个方法里,把button给传到方法中去,在button的点击方法里面遍历装有button的数组,让他显示没有被......
  • iOS 在UILabel显示不同的字体和颜色(转)
    在项目开发中,我们经常会遇到在这样一种情形:在一个UILabel使用不同的颜色或不同的字体来体现字符串,在iOS6以后我们可以很轻松的实现这一点,官方的API为我们提供了UILabel类的attributedText,使用不同颜色和不同字体的字符串,我们可以使用NSAttributedText和NSMutableAttributed......
  • ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
    在ios7中,UITableViewCell左侧会有默认15像素的空白。这时候,设置setSeparatorInset:UIEdgeInsetsZero能将空白去掉。但是在ios8中,设置setSeparatorInset:UIEdgeInsetsZero已经不起作用了。下面是解决办法首先在viewDidLoad方法加入以下代码: if([self.tableViewrespondsToSelect......
  • ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段
    应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内。难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟这俩时间作对比就好了。下面提供两条思路:法1.用NSDate生成当前时间,然后转为字符串,从字符串中取出当前的......
  • 多页面应用(MPA)开发最佳实践
    缘由平常开发当中,一般使用vue-cli2或vue-cli3脚手架来进行开发,默认构建出来的应用是单页面应用程序(SPA)。面对一个工程下面只有一个应用的项目,这样做是没有问题的,而面对实际开发中多个页面的需求时,就会有它局限性。比如一个项目中分为Mobile端和PC端,如果采用单页面模式构建的话,......
  • ChatGPT赋能低代码开发:打造智能应用的双重引擎
    摘要:本文摘自葡萄城低代码产品活字格的资深用户(格友超哥)所撰写的文章:《惊叹表现!活字格+ChatGPT:低代码开发智能应用的巨大潜力》。ChatGPT的functions函数使用方自从OPENAI发布了最新的GPT引擎gpt-3.5-turbo-0613之后,我就对它的functions参数很感兴趣,利用GPT超强的语言理解能力,......
  • Nginx具体应用
          ......
  • Nginx具体应用_负载均衡_配置_Nginx提供的负载均衡策略
         ......
  • k8s发布应用
    前言首先以SpringBoot应用为例介绍一下k8s的发布步骤。1.从代码仓库下载代码,比如GitLab;2.接着是进行打包,比如使用Maven;3.编写Dockerfile文件,把步骤2产生的包制作成镜像;4.上传步骤3的镜像到远程仓库,比如Harhor;5.编写Deployment文件;6.提交Deployment文件到k8s集群;从以上步骤......
  • 企业级应用软件,真的需要人脸识别登录功能吗
    在现代信息化的社会中,人脸识别技术已经被广泛应用于各种场合,如手机解锁、门禁系统、支付验证等。但是,对于企业级用户的软件来说,是否需要支持人脸识别登录的功能,则需要根据具体的业务需求和环境进行权衡。以下是一些不需要支持人脸识别登录的原因。首先,我们需要了解企业级用户的特......