天天看點

UIApplication對象和AppDelegate代理方法

UIApplication對象

  • UIApplication

    是一個單例對象
  • 一個應用程式的象征操作
  • 一個應用程式隻有一個

    UIApplication

    對象,擷取到

    UIApplication

    對象就相當于擷取到應用程式

1.應用程式圖示紅色提醒數字

UIApplication *app = [UIApplication sharedApplication];
 // 設定appIcon提醒數字,必須注冊使用者通知 
  app.applicationIconBadgeNumber = 10;
           

2.聯網的狀态

// 設定聯網狀态
    app.networkActivityIndicatorVisible = YES;
    
           

3.打開openURL,

  • 打電話 方式 -1
//判斷是不是iOS10及以上的系統
    if (@available(iOS 10.0,*)) {
        NSURL *url = [NSURL URLWithString:@"tel://10086"];
        [app openURL:url options:@{} completionHandler:nil];
    }else{
        [app openURL:[NSURL URLWithString:@"tel://10086"]];
    }
           
  • 打電話方式 -2
//建立webView
    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
    //擷取到視窗
    UIWindow *windows = [UIApplication sharedApplication].keyWindow;
    //添加視圖
    [windows.rootViewController.view addSubview:webView];
    //擷取到 電話字元串
    NSString *urlStr = [NSString stringWithFormat:@"tel:%@",@"10086"];
    //url
    NSURL *url = [NSURL URLWithString:urlStr];
    //請求對象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    //
    [webView loadRequest:request];
           
  • 打開網頁
UIApplication  *app = [UIApplication sharedApplication];
    
    //判斷是不是iOS10及以上的系統
    if (@available(iOS 10.0,*)) {
        NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];
        [app openURL:url options:@{} completionHandler:nil];
    }else{
        [app openURL:[NSURL URLWithString:@"https://www.baidu.com"]];
    }
           
  • 發短信
UIApplication  *app = [UIApplication sharedApplication];
    
    //判斷是不是iOS10及以上的系統
    if (@available(iOS 10.0,*)) {
        NSURL *url = [NSURL URLWithString:@"sms://10086"];
        [app openURL:url options:@{} completionHandler:nil];
    }else{
        [app openURL:[NSURL URLWithString:@"sms://10086"]];
    }


           
  • 發郵件
UIApplication  *app = [UIApplication sharedApplication];
    // 發送郵件 mailto為發送郵件協定
    //判斷是不是iOS10及以上的系統
    if (@available(iOS 10.0,*)) {
        NSURL *url = [NSURL URLWithString:@"mailto://郵箱名"];
        [app openURL:url options:@{} completionHandler:nil];
    }else{
        [app openURL:[NSURL URLWithString:@"mailto://郵箱名"]];
    }

           

4.控制狀态欄

  • ios7之後控制狀态欄,是有控制器控制的
//在控制器裡面執行的方法
// 隐藏狀态欄
- (BOOL)prefersStatusBarHidden
{
    return YES;
}


//設定狀态欄的樣式
- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}
           
  • 如果還想UIApplication控制需要做一個設定在infp.plist檔案裡面

    View controller-based status bar appearance

    設定為

    NO

    UIApplication對象和AppDelegate代理方法
  • 設定狀态欄
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    [UIApplication sharedApplication].statusBarHidden = YES;
           

AppDelegate代理方法

的調用

  • 應用程式啟動完畢的時候調用這個方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return YES;
}
           
  • 應用程式将要失去焦點的時候調用
- (void)applicationWillResignActive:(UIApplication *)application {

}
           
  • 應用程式進入背景的時候調用
- (void)applicationDidEnterBackground:(UIApplication *)application {
   
}
           
  • 應用程式進入到前台的時候調用
- (void)applicationWillEnterForeground:(UIApplication *)application {
  
}
           
  • 應用程式擷取焦點時調用
- (void)applicationDidBecomeActive:(UIApplication *)application {
   
}

           
  • 應用程式退出的時候調用
- (void)applicationWillTerminate:(UIApplication *)application {
   
}
           
  • 應用程式收到記憶體警告時調用
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
    //這個方法裡面可以處理 網絡(取消網絡的加載),清除圖檔的緩存等
}