美文网首页iOS开发iOS Developer
UIApplication方法和OpenUrl的基本用法

UIApplication方法和OpenUrl的基本用法

作者: marlonxlj | 来源:发表于2016-11-18 11:31 被阅读146次

    UIApplication实用方法

    前言:

    本文介绍的方法每一个人在项目都应用过,只是有的时候容易忘记每次都要去百度。因为有些方法在整个项目中可能就只会写一次,基于此我只是做个笔记。

    1. 每一个应用程序都有一个UIApplication对象,是一个单例。在程序中只能通过[UIApplication sharedApplication]来获得这个单例对象,不能通过alloc去新建一个UIApplication对象

    2. 利用UIApplication可以进行的应用级别操作举例

    (1)设置应用程序图标右上角的红色提醒数字(applocationIconBadgeNumber)
    实例代码:

    //获取到应用程序中UIApplication单例对象
    //设置应用程序图标右上角的红色提醒数字
    // 获取当前应用程序的UIApplication对象
    UIApplication *app = [UIApplication sharedApplication];
        [UIApplication sharedApplication].applicationIconBadgeNumber = @"20";  
    //在IOS8以后要想设置applicationIconBadgeNumber,需要用户的授权,在IOS8以后,需要加上下面的代码
      
     float version = [[[UIDevice currentDevice] systemVersion] floatValue];
     if (version >= 8.0) {
         UIUserNotificationSettings * settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
            [app registerUserNotificationSettings:settings];
        
     }
    

    效果图:

    10A5E928-4AEB-485B-ADE9-2EDD6A1C9CDA.png

    (2)设置联网指示器的可见:
    netWworkActivityIndicatorVisible
    实例代码:

    设置联网指示器可见

    app.networkActivityIndicatorVisible = YES;

    效果图:

    625BA66F-551F-4058-A6B8-5E2FAB93B38C.png

    (3)管理状态栏
    从iOS7开始,系统提供了2种管理状态栏的方式
    a.通过UIViewController管理(这意味着每一个UIViewController都可以拥有自己不同的状态栏)
    在iOS7以后默认情况下,状态栏都是由UIViewController管理的,通过实现以下两个方法:
    状态样式:- (UIStatusBarStyle)preferredStatusBarStyle;
    状态栏的可见性: - (BOOL)prepersStatusBarHidden;
    实例代码:

    • (UIStatusBarStyle)preferredStatusBarStyle{

      //UIStatusBarStyleDefault //默认,黑色
      //UIStatusBarStyleLightContent //白色
      return UIStatusBarStyleLightContent;
      }

    //状态栏是否隐藏
    - (BOOL)prefersStatusBarHidden{
    
        return YES;
    }
    

    效果图:

    1091A41E.png

    通过UIApplication管理(一个应用程序的所有界面的状态栏都由它统一管理)

    如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置(添加属性View controller-based status bar appearance 并且设置其BOOL值为NO),然后在程序中实现以下代码:
    //设置状态栏的样式
    app.statusBarStyle = UIStatusBarStyleDefault; //默认(黑色)
    
    //白色
    app.statusBarStyle = UIStatusBarStyleLightContent;
    
    //设置是否隐藏状态栏
    app.statusBarHidden = NO;
    
    //系统方法,当从tabbar push过来的时候不隐藏tabbar
    - (BOOL)hidesBottomBarWhenPushed{
        return NO;
    }
    
    #pragma mark - 禁止横屏幕
    - (BOOL)shouldAutorotate
    {
        return NO;
    }
    
    

    (4)openURL:方法

    UIApplication有个功能十分强大的openURL:方法

    -(BOOL)openURL:(NSURL *)url;
    
    //openURL:方法的部分功能有
    //打电话:
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“tel://18812345678”]];
    
    //发短信:
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“sms://18812345678"]];
    
    //发邮件:
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“mailto://marlonxlj@163.com”]];
    
    //打开网页:
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“http://www.baidu.com”]];
    
    //调用谷歌地图(Google Maps)
    NSString *searchQuery = @"1 Infinite Loop, Cupertino, CA 95014";  
    searchQuery = [addressText stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];  
    NSString *urlString=[NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", searchQuery];  
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: urlString]];
    
    //调用应用商店(AppStore),这个地址是可以官网上查到的
    NSURL *appStoreUrl= [NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291589999&mt=8"];
    [[UIApplication sharedApplication] openURL:appStoreUrl];
    
    //调用appstore中程序的评论
    NSString *str = [NSString stringWithFormat:
                             @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d",
                             m_appleID ];  
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    
    

    关于iOS10系统调用的问题

    iOS10以下可以调用到系统的WIFI设置等,但是iOS10以后就不再支持系统调用到WIFI设置等,只是调到App的系统设置页面。

    有任何问题请及时issues me

    Email: marlonxlj@163.com

    相关文章

      网友评论

        本文标题:UIApplication方法和OpenUrl的基本用法

        本文链接:https://www.haomeiwen.com/subject/sbbjpttx.html